@pdftron/pdfnet-node-samples 10.7.0 → 10.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/package.json +21 -20
  2. package/readme.md +12 -12
  3. package/samples/AddImageTest/AddImageTest.js +115 -115
  4. package/samples/AdvancedImagingTest/AdvancedImagingTest.js +78 -78
  5. package/samples/AnnotationTest/AnnotationTest.js +641 -641
  6. package/samples/BookmarkTest/BookmarkTest.js +219 -219
  7. package/samples/CAD2PDFTest/CAD2PDFTest.js +79 -79
  8. package/samples/ContentReplacerTest/ContentReplacerTest.js +75 -75
  9. package/samples/ConvertPrintTest/ConvertPrintTest.js +153 -153
  10. package/samples/ConvertTest/ConvertTest.js +203 -203
  11. package/samples/DataExtractionTest/DataExtractionTest.js +214 -214
  12. package/samples/DigitalSignaturesTest/DigitalSignaturesTest.js +526 -526
  13. package/samples/DocumentCreationTest/DocumentCreationTest.js +409 -409
  14. package/samples/ElementBuilderTest/ElementBuilderTest.js +513 -513
  15. package/samples/ElementEditTest/ElementEditTest.js +110 -110
  16. package/samples/ElementReaderAdvTest/ElementReaderAdvTest.js +305 -305
  17. package/samples/ElementReaderTest/ElementReaderTest.js +77 -77
  18. package/samples/EncTest/EncTest.js +175 -175
  19. package/samples/FDFTest/FDFTest.js +218 -218
  20. package/samples/HTML2PDFTest/HTML2PDFTest.js +164 -164
  21. package/samples/HighlightsTest/HighlightsTest.js +97 -97
  22. package/samples/ImageExtractTest/ImageExtractTest.js +129 -129
  23. package/samples/ImpositionTest/ImpositionTest.js +86 -86
  24. package/samples/InteractiveFormsTest/InteractiveFormsTest.js +381 -381
  25. package/samples/JBIG2Test/JBIG2Test.js +88 -88
  26. package/samples/LicenseKey/LicenseKey.js +11 -11
  27. package/samples/LogicalStructureTest/LogicalStructureTest.js +250 -250
  28. package/samples/OCRTest/OCRTest.js +235 -235
  29. package/samples/OfficeTemplateTest/OfficeTemplateTest.js +79 -79
  30. package/samples/OfficeToPDFTest/OfficeToPDFTest.js +125 -125
  31. package/samples/OptimizerTest/OptimizerTest.js +191 -191
  32. package/samples/PDF2HtmlTest/PDF2HtmlTest.js +123 -123
  33. package/samples/PDF2OfficeTest/PDF2OfficeTest.js +158 -158
  34. package/samples/PDFATest/PDFATest.js +85 -85
  35. package/samples/PDFDocMemoryTest/PDFDocMemoryTest.js +84 -84
  36. package/samples/PDFDrawTest/PDFDrawTest.js +305 -305
  37. package/samples/PDFLayersTest/PDFLayersTest.js +294 -294
  38. package/samples/PDFPackageTest/PDFPackageTest.js +111 -111
  39. package/samples/PDFPageTest/PDFPageTest.js +189 -189
  40. package/samples/PDFRedactTest/PDFRedactTest.js +74 -74
  41. package/samples/PageLabelsTest/PageLabelsTest.js +138 -138
  42. package/samples/PatternTest/PatternTest.js +226 -226
  43. package/samples/RectTest/RectTest.js +40 -40
  44. package/samples/SDFTest/SDFTest.js +87 -87
  45. package/samples/StamperTest/StamperTest.js +255 -255
  46. package/samples/TestFiles/Misc-Fixed.pfa +1166 -1166
  47. package/samples/TestFiles/SHA-2 Root USERTrust RSA CA Sectigo timestamping.crt +34 -34
  48. package/samples/TestFiles/form1_annots.xfdf +33 -33
  49. package/samples/TestFiles/form1_data.xfdf +139 -139
  50. package/samples/TestFiles/my_stream.txt +2310 -2310
  51. package/samples/TestFiles/tiger.svg +378 -378
  52. package/samples/TextExtractTest/TextExtractTest.js +286 -286
  53. package/samples/TextSearchTest/TextSearchTest.js +121 -121
  54. package/samples/U3DTest/U3DTest.js +104 -104
  55. package/samples/UndoRedoTest/UndoRedoTest.js +101 -101
  56. package/samples/UnicodeWriteTest/UnicodeWriteTest.js +173 -173
  57. package/samples/WebViewerConvertTest/WebViewerConvertTest.js +135 -135
  58. package/samples/runall.bat +12 -12
  59. package/samples/runall.sh +15 -15
@@ -1,89 +1,89 @@
1
- //---------------------------------------------------------------------------------------
2
- // Copyright (c) 2001-2024 by Apryse Software Inc. All Rights Reserved.
3
- // Consult legal.txt regarding legal and license information.
4
- //---------------------------------------------------------------------------------------
5
-
6
-
7
- // This sample project illustrates how to recompress bi-tonal images in an
8
- // existing PDF document using JBIG2 compression. The sample is not intended
9
- // to be a generic PDF optimization tool.
10
- //
11
- // You can download the entire document using the following link:
12
- // http://www.pdftron.com/net/samplecode/data/US061222892.pdf
13
- //
14
-
15
- const { PDFNet } = require('@pdftron/pdfnet-node');
16
- const PDFTronLicense = require('../LicenseKey/LicenseKey');
17
-
18
- ((exports) => {
19
- 'use strict';
20
-
21
- exports.runJBIG2Test = () => {
22
- const main = async () => {
23
- try {
24
- const pdf_doc = await PDFNet.PDFDoc.createFromFilePath('../TestFiles/US061222892-a.pdf');
25
- pdf_doc.initSecurityHandler();
26
-
27
- const cos_doc = await pdf_doc.getSDFDoc();
28
- const num_objs = await cos_doc.xRefSize();
29
- for (let i = 1; i < num_objs; ++i) {
30
- const obj = await cos_doc.getObj(i);
31
- if (obj && !(await obj.isFree()) && await obj.isStream()) {
32
- // Process only images
33
- let itr = await obj.find('Subtype');
34
- if (!(await itr.hasNext()) || await (await itr.value()).getName() !== 'Image')
35
- continue;
36
- const input_image = await PDFNet.Image.createFromObj(obj);
37
- // Process only gray-scale images
38
- if (await input_image.getComponentNum() != 1)
39
- continue;
40
- if (await input_image.getBitsPerComponent() != 1) // Recompress only 1 BPC images
41
- continue;
42
-
43
- // Skip images that are already compressed using JBIG2
44
- itr = await obj.find('Filter');
45
- if (await itr.hasNext()) {
46
- const value = await itr.value();
47
- if (await value.isName() && await value.getName() === 'JBIG2Decode') continue;
48
- }
49
-
50
- const filter = await obj.getDecodedStream();
51
- const reader = await PDFNet.FilterReader.create(filter);
52
-
53
- const hint_set = await PDFNet.ObjSet.create();
54
- const hint = await hint_set.createArray();
55
-
56
- hint.pushBackName('JBIG2');
57
- hint.pushBackName('Lossless');
58
-
59
- const new_image = await PDFNet.Image.createFromStream(cos_doc, reader, await input_image.getImageWidth(),
60
- await input_image.getImageHeight(), 1, await PDFNet.ColorSpace.createDeviceGray(), hint);
61
-
62
- const new_img_obj = await new_image.getSDFObj();
63
- itr = await obj.find('Decode');
64
- if (await itr.hasNext())
65
- new_img_obj.put('Decode', await itr.value());
66
- itr = await obj.find('ImageMask');
67
- if (await itr.hasNext())
68
- new_img_obj.put('ImageMask', await itr.value());
69
- itr = await obj.find('Mask');
70
- if (await itr.hasNext())
71
- new_img_obj.put('Mask', await itr.value());
72
-
73
- await cos_doc.swap(i, await new_img_obj.getObjNum());
74
- }
75
- }
76
-
77
- pdf_doc.save('../TestFiles/Output/US061222892_JBIG2.pdf', PDFNet.SDFDoc.SaveOptions.e_remove_unused);
78
- } catch (err) {
79
- console.log(err);
80
- }
81
- };
82
- PDFNet.runWithCleanup(main, PDFTronLicense.Key).catch(function(error) {
83
- console.log('Error: ' + JSON.stringify(error));
84
- }).then(function(){ return PDFNet.shutdown(); });
85
- };
86
- exports.runJBIG2Test();
87
- })(exports);
88
- // eslint-disable-next-line spaced-comment
1
+ //---------------------------------------------------------------------------------------
2
+ // Copyright (c) 2001-2024 by Apryse Software Inc. All Rights Reserved.
3
+ // Consult legal.txt regarding legal and license information.
4
+ //---------------------------------------------------------------------------------------
5
+
6
+
7
+ // This sample project illustrates how to recompress bi-tonal images in an
8
+ // existing PDF document using JBIG2 compression. The sample is not intended
9
+ // to be a generic PDF optimization tool.
10
+ //
11
+ // You can download the entire document using the following link:
12
+ // http://www.pdftron.com/net/samplecode/data/US061222892.pdf
13
+ //
14
+
15
+ const { PDFNet } = require('@pdftron/pdfnet-node');
16
+ const PDFTronLicense = require('../LicenseKey/LicenseKey');
17
+
18
+ ((exports) => {
19
+ 'use strict';
20
+
21
+ exports.runJBIG2Test = () => {
22
+ const main = async () => {
23
+ try {
24
+ const pdf_doc = await PDFNet.PDFDoc.createFromFilePath('../TestFiles/US061222892-a.pdf');
25
+ pdf_doc.initSecurityHandler();
26
+
27
+ const cos_doc = await pdf_doc.getSDFDoc();
28
+ const num_objs = await cos_doc.xRefSize();
29
+ for (let i = 1; i < num_objs; ++i) {
30
+ const obj = await cos_doc.getObj(i);
31
+ if (obj && !(await obj.isFree()) && await obj.isStream()) {
32
+ // Process only images
33
+ let itr = await obj.find('Subtype');
34
+ if (!(await itr.hasNext()) || await (await itr.value()).getName() !== 'Image')
35
+ continue;
36
+ const input_image = await PDFNet.Image.createFromObj(obj);
37
+ // Process only gray-scale images
38
+ if (await input_image.getComponentNum() != 1)
39
+ continue;
40
+ if (await input_image.getBitsPerComponent() != 1) // Recompress only 1 BPC images
41
+ continue;
42
+
43
+ // Skip images that are already compressed using JBIG2
44
+ itr = await obj.find('Filter');
45
+ if (await itr.hasNext()) {
46
+ const value = await itr.value();
47
+ if (await value.isName() && await value.getName() === 'JBIG2Decode') continue;
48
+ }
49
+
50
+ const filter = await obj.getDecodedStream();
51
+ const reader = await PDFNet.FilterReader.create(filter);
52
+
53
+ const hint_set = await PDFNet.ObjSet.create();
54
+ const hint = await hint_set.createArray();
55
+
56
+ hint.pushBackName('JBIG2');
57
+ hint.pushBackName('Lossless');
58
+
59
+ const new_image = await PDFNet.Image.createFromStream(cos_doc, reader, await input_image.getImageWidth(),
60
+ await input_image.getImageHeight(), 1, await PDFNet.ColorSpace.createDeviceGray(), hint);
61
+
62
+ const new_img_obj = await new_image.getSDFObj();
63
+ itr = await obj.find('Decode');
64
+ if (await itr.hasNext())
65
+ new_img_obj.put('Decode', await itr.value());
66
+ itr = await obj.find('ImageMask');
67
+ if (await itr.hasNext())
68
+ new_img_obj.put('ImageMask', await itr.value());
69
+ itr = await obj.find('Mask');
70
+ if (await itr.hasNext())
71
+ new_img_obj.put('Mask', await itr.value());
72
+
73
+ await cos_doc.swap(i, await new_img_obj.getObjNum());
74
+ }
75
+ }
76
+
77
+ pdf_doc.save('../TestFiles/Output/US061222892_JBIG2.pdf', PDFNet.SDFDoc.SaveOptions.e_remove_unused);
78
+ } catch (err) {
79
+ console.log(err);
80
+ }
81
+ };
82
+ PDFNet.runWithCleanup(main, PDFTronLicense.Key).catch(function(error) {
83
+ console.log('Error: ' + JSON.stringify(error));
84
+ }).then(function(){ return PDFNet.shutdown(); });
85
+ };
86
+ exports.runJBIG2Test();
87
+ })(exports);
88
+ // eslint-disable-next-line spaced-comment
89
89
  //# sourceURL=JBIG2Test.js
@@ -1,11 +1,11 @@
1
- //---------------------------------------------------------------------------------------
2
- // Copyright (c) 2001-2023 by Apryse Software Inc. All Rights Reserved.
3
- // Consult legal.txt regarding legal and license information.
4
- //---------------------------------------------------------------------------------------
5
-
6
- //"Enter your key here. If you don't have it, please go to https://www.pdftron.com/pws/get-key to obtain a demo license or https://www.pdftron.com/form/contact-sales to obtain a production key.
7
- const LicenseKey = 'YOUR_PDFTRON_LICENSE_KEY';
8
- if(LicenseKey == 'YOUR_PDFTRON_LICENSE_KEY'){
9
- throw ('Please enter your license key by replacing \'YOUR_PDFTRON_LICENSE_KEY\' that is assigned to the LicenseKey variable in Samples/LicenseKey/LicenseKey.js. If you do not have a license key, please go to https://www.pdftron.com/pws/get-key to obtain a demo license or https://www.pdftron.com/form/contact-sales to obtain a production key.');
10
- }
11
- exports.Key = LicenseKey;
1
+ //---------------------------------------------------------------------------------------
2
+ // Copyright (c) 2001-2023 by Apryse Software Inc. All Rights Reserved.
3
+ // Consult legal.txt regarding legal and license information.
4
+ //---------------------------------------------------------------------------------------
5
+
6
+ //"Enter your key here. If you don't have it, please go to https://www.pdftron.com/pws/get-key to obtain a demo license or https://www.pdftron.com/form/contact-sales to obtain a production key.
7
+ const LicenseKey = 'YOUR_PDFTRON_LICENSE_KEY';
8
+ if(LicenseKey == 'YOUR_PDFTRON_LICENSE_KEY'){
9
+ throw ('Please enter your license key by replacing \'YOUR_PDFTRON_LICENSE_KEY\' that is assigned to the LicenseKey variable in Samples/LicenseKey/LicenseKey.js. If you do not have a license key, please go to https://www.pdftron.com/pws/get-key to obtain a demo license or https://www.pdftron.com/form/contact-sales to obtain a production key.');
10
+ }
11
+ exports.Key = LicenseKey;