@pdftron/pdfnet-node-samples 10.9.0-2-beta → 10.9.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 (135) hide show
  1. package/package.json +21 -20
  2. package/readme.md +13 -38
  3. package/{AddImageTest → samples/AddImageTest}/AddImageTest.js +115 -115
  4. package/{AdvancedImagingTest → samples/AdvancedImagingTest}/AdvancedImagingTest.js +78 -78
  5. package/{AnnotationTest → samples/AnnotationTest}/AnnotationTest.js +641 -641
  6. package/{BookmarkTest → samples/BookmarkTest}/BookmarkTest.js +219 -219
  7. package/{CAD2PDFTest → samples/CAD2PDFTest}/CAD2PDFTest.js +79 -79
  8. package/{ContentReplacerTest → samples/ContentReplacerTest}/ContentReplacerTest.js +75 -75
  9. package/{ConvertPrintTest → samples/ConvertPrintTest}/ConvertPrintTest.js +153 -153
  10. package/{ConvertTest → samples/ConvertTest}/ConvertTest.js +203 -203
  11. package/{DataExtractionTest → samples/DataExtractionTest}/DataExtractionTest.js +214 -214
  12. package/{DigitalSignaturesTest → samples/DigitalSignaturesTest}/DigitalSignaturesTest.js +526 -621
  13. package/{DocumentCreationTest → samples/DocumentCreationTest}/DocumentCreationTest.js +409 -409
  14. package/{ElementBuilderTest → samples/ElementBuilderTest}/ElementBuilderTest.js +513 -513
  15. package/{ElementEditTest → samples/ElementEditTest}/ElementEditTest.js +110 -110
  16. package/{ElementReaderAdvTest → samples/ElementReaderAdvTest}/ElementReaderAdvTest.js +305 -305
  17. package/{ElementReaderTest → samples/ElementReaderTest}/ElementReaderTest.js +77 -77
  18. package/{EncTest → samples/EncTest}/EncTest.js +175 -175
  19. package/{FDFTest → samples/FDFTest}/FDFTest.js +218 -218
  20. package/{HTML2PDFTest → samples/HTML2PDFTest}/HTML2PDFTest.js +164 -164
  21. package/{HighlightsTest → samples/HighlightsTest}/HighlightsTest.js +97 -97
  22. package/{ImageExtractTest → samples/ImageExtractTest}/ImageExtractTest.js +129 -129
  23. package/{ImpositionTest → samples/ImpositionTest}/ImpositionTest.js +86 -86
  24. package/{InteractiveFormsTest → samples/InteractiveFormsTest}/InteractiveFormsTest.js +381 -381
  25. package/{JBIG2Test → samples/JBIG2Test}/JBIG2Test.js +88 -88
  26. package/{LicenseKey → samples/LicenseKey}/LicenseKey.js +11 -11
  27. package/{LogicalStructureTest → samples/LogicalStructureTest}/LogicalStructureTest.js +250 -250
  28. package/{OCRTest → samples/OCRTest}/OCRTest.js +235 -235
  29. package/{OfficeTemplateTest → samples/OfficeTemplateTest}/OfficeTemplateTest.js +79 -79
  30. package/{OfficeToPDFTest → samples/OfficeToPDFTest}/OfficeToPDFTest.js +125 -125
  31. package/{OptimizerTest → samples/OptimizerTest}/OptimizerTest.js +191 -191
  32. package/{PDF2HtmlTest → samples/PDF2HtmlTest}/PDF2HtmlTest.js +123 -123
  33. package/{PDF2OfficeTest → samples/PDF2OfficeTest}/PDF2OfficeTest.js +158 -158
  34. package/{PDFATest → samples/PDFATest}/PDFATest.js +85 -85
  35. package/{PDFDocMemoryTest → samples/PDFDocMemoryTest}/PDFDocMemoryTest.js +84 -84
  36. package/{PDFDrawTest → samples/PDFDrawTest}/PDFDrawTest.js +305 -305
  37. package/{PDFLayersTest → samples/PDFLayersTest}/PDFLayersTest.js +294 -294
  38. package/{PDFPackageTest → samples/PDFPackageTest}/PDFPackageTest.js +111 -111
  39. package/{PDFPageTest → samples/PDFPageTest}/PDFPageTest.js +189 -189
  40. package/{PDFRedactTest → samples/PDFRedactTest}/PDFRedactTest.js +74 -74
  41. package/{PageLabelsTest → samples/PageLabelsTest}/PageLabelsTest.js +138 -138
  42. package/{PatternTest → samples/PatternTest}/PatternTest.js +226 -226
  43. package/{RectTest → samples/RectTest}/RectTest.js +40 -40
  44. package/{SDFTest → samples/SDFTest}/SDFTest.js +87 -87
  45. package/{StamperTest → samples/StamperTest}/StamperTest.js +255 -255
  46. package/{TestFiles → samples/TestFiles}/Misc-Fixed.pfa +1166 -1166
  47. package/{TestFiles → samples/TestFiles}/SHA-2 Root USERTrust RSA CA Sectigo timestamping.crt +34 -34
  48. package/{TestFiles → samples/TestFiles}/form1_annots.xfdf +33 -33
  49. package/{TestFiles → samples/TestFiles}/form1_data.xfdf +139 -139
  50. package/{TestFiles → samples/TestFiles}/my_stream.txt +2310 -2310
  51. package/{TestFiles → samples/TestFiles}/tiger.svg +378 -378
  52. package/{TextExtractTest → samples/TextExtractTest}/TextExtractTest.js +286 -286
  53. package/{TextSearchTest → samples/TextSearchTest}/TextSearchTest.js +121 -121
  54. package/{U3DTest → samples/U3DTest}/U3DTest.js +104 -104
  55. package/{UndoRedoTest → samples/UndoRedoTest}/UndoRedoTest.js +101 -101
  56. package/{UnicodeWriteTest → samples/UnicodeWriteTest}/UnicodeWriteTest.js +173 -173
  57. package/{WebViewerConvertTest → samples/WebViewerConvertTest}/WebViewerConvertTest.js +135 -135
  58. package/{runall.bat → samples/runall.bat} +12 -12
  59. package/{runall.sh → samples/runall.sh} +15 -15
  60. package/legal.txt +0 -632
  61. package/license.pdf +0 -0
  62. /package/{TestFiles → samples/TestFiles}/BusinessCardTemplate.pdf +0 -0
  63. /package/{TestFiles → samples/TestFiles}/Fishermen.docx +0 -0
  64. /package/{TestFiles → samples/TestFiles}/Font_licenses.txt +0 -0
  65. /package/{TestFiles → samples/TestFiles}/GlobalSignRootForTST.cer +0 -0
  66. /package/{TestFiles → samples/TestFiles}/License.txt +0 -0
  67. /package/{TestFiles → samples/TestFiles}/NotoSans_with_hindi.ttf +0 -0
  68. /package/{TestFiles → samples/TestFiles}/Output/empty +0 -0
  69. /package/{TestFiles → samples/TestFiles}/SYH_Letter.docx +0 -0
  70. /package/{TestFiles → samples/TestFiles}/TigerText.pdf +0 -0
  71. /package/{TestFiles → samples/TestFiles}/US061222892-a.pdf +0 -0
  72. /package/{TestFiles → samples/TestFiles}/butterfly.png +0 -0
  73. /package/{TestFiles → samples/TestFiles}/credit card numbers.pdf +0 -0
  74. /package/{TestFiles → samples/TestFiles}/dice.jpg +0 -0
  75. /package/{TestFiles → samples/TestFiles}/dice.u3d +0 -0
  76. /package/{TestFiles → samples/TestFiles}/doc_to_sign.pdf +0 -0
  77. /package/{TestFiles → samples/TestFiles}/factsheet_Arabic.docx +0 -0
  78. /package/{TestFiles → samples/TestFiles}/financial.pdf +0 -0
  79. /package/{TestFiles → samples/TestFiles}/fish.pdf +0 -0
  80. /package/{TestFiles → samples/TestFiles}/font.ttf +0 -0
  81. /package/{TestFiles → samples/TestFiles}/form1.pdf +0 -0
  82. /package/{TestFiles → samples/TestFiles}/form1_data.fdf +0 -0
  83. /package/{TestFiles → samples/TestFiles}/formfields-scanned-withfields.pdf +0 -0
  84. /package/{TestFiles → samples/TestFiles}/formfields-scanned.pdf +0 -0
  85. /package/{TestFiles → samples/TestFiles}/formfields.pdf +0 -0
  86. /package/{TestFiles → samples/TestFiles}/grayscale.tif +0 -0
  87. /package/{TestFiles → samples/TestFiles}/hindi_sample_utf16le.txt +0 -0
  88. /package/{TestFiles → samples/TestFiles}/imagemask.dat +0 -0
  89. /package/{TestFiles → samples/TestFiles}/logo_red.png +0 -0
  90. /package/{TestFiles → samples/TestFiles}/lorem_ipsum.pdf +0 -0
  91. /package/{TestFiles → samples/TestFiles}/multipage.tif +0 -0
  92. /package/{TestFiles → samples/TestFiles}/newsletter.pdf +0 -0
  93. /package/{TestFiles → samples/TestFiles}/newsletter.xod +0 -0
  94. /package/{TestFiles → samples/TestFiles}/numbered.pdf +0 -0
  95. /package/{TestFiles → samples/TestFiles}/op_blend_test.pdf +0 -0
  96. /package/{TestFiles → samples/TestFiles}/palm.jp2 +0 -0
  97. /package/{TestFiles → samples/TestFiles}/paragraphs_and_tables.pdf +0 -0
  98. /package/{TestFiles → samples/TestFiles}/pdfnet.gif +0 -0
  99. /package/{TestFiles → samples/TestFiles}/pdftron.bmp +0 -0
  100. /package/{TestFiles → samples/TestFiles}/pdftron.cer +0 -0
  101. /package/{TestFiles → samples/TestFiles}/pdftron.pfx +0 -0
  102. /package/{TestFiles → samples/TestFiles}/pdftron_smart_substitution.plugin +0 -0
  103. /package/{TestFiles → samples/TestFiles}/peppers.jpg +0 -0
  104. /package/{TestFiles → samples/TestFiles}/signature.jpg +0 -0
  105. /package/{TestFiles → samples/TestFiles}/simple-emf.emf +0 -0
  106. /package/{TestFiles → samples/TestFiles}/simple-excel_2007.xlsx +0 -0
  107. /package/{TestFiles → samples/TestFiles}/simple-outlook.msg +0 -0
  108. /package/{TestFiles → samples/TestFiles}/simple-powerpoint_2007.pptx +0 -0
  109. /package/{TestFiles → samples/TestFiles}/simple-publisher.pub +0 -0
  110. /package/{TestFiles → samples/TestFiles}/simple-rtf.rtf +0 -0
  111. /package/{TestFiles → samples/TestFiles}/simple-text.txt +0 -0
  112. /package/{TestFiles → samples/TestFiles}/simple-visio.vsd +0 -0
  113. /package/{TestFiles → samples/TestFiles}/simple-webpage.html +0 -0
  114. /package/{TestFiles → samples/TestFiles}/simple-webpage.mht +0 -0
  115. /package/{TestFiles → samples/TestFiles}/simple-webpage_files/colorschememapping.xml +0 -0
  116. /package/{TestFiles → samples/TestFiles}/simple-webpage_files/filelist.xml +0 -0
  117. /package/{TestFiles → samples/TestFiles}/simple-webpage_files/image001.gif +0 -0
  118. /package/{TestFiles → samples/TestFiles}/simple-webpage_files/image002.png +0 -0
  119. /package/{TestFiles → samples/TestFiles}/simple-webpage_files/image003.jpg +0 -0
  120. /package/{TestFiles → samples/TestFiles}/simple-webpage_files/image004.emz +0 -0
  121. /package/{TestFiles → samples/TestFiles}/simple-webpage_files/image005.gif +0 -0
  122. /package/{TestFiles → samples/TestFiles}/simple-webpage_files/image006.png +0 -0
  123. /package/{TestFiles → samples/TestFiles}/simple-webpage_files/image007.gif +0 -0
  124. /package/{TestFiles → samples/TestFiles}/simple-webpage_files/oledata.mso +0 -0
  125. /package/{TestFiles → samples/TestFiles}/simple-webpage_files/themedata.thmx +0 -0
  126. /package/{TestFiles → samples/TestFiles}/simple-word_2007.docx +0 -0
  127. /package/{TestFiles → samples/TestFiles}/simple-xps.xps +0 -0
  128. /package/{TestFiles → samples/TestFiles}/table.pdf +0 -0
  129. /package/{TestFiles → samples/TestFiles}/tagged.pdf +0 -0
  130. /package/{TestFiles → samples/TestFiles}/the_rime_of_the_ancient_mariner.docx +0 -0
  131. /package/{TestFiles → samples/TestFiles}/tiger.pdf +0 -0
  132. /package/{TestFiles → samples/TestFiles}/waiver.pdf +0 -0
  133. /package/{TestFiles → samples/TestFiles}/waiver_withApprovalField.pdf +0 -0
  134. /package/{TestFiles → samples/TestFiles}/waiver_withApprovalField_certified.pdf +0 -0
  135. /package/{TestFiles → samples/TestFiles}/waiver_withApprovalField_certified_approved.pdf +0 -0
package/package.json CHANGED
@@ -1,20 +1,21 @@
1
- {
2
- "name": "@pdftron/pdfnet-node-samples",
3
- "version": "10.9.0-2-beta",
4
- "description": "Sample code for the @pdftron/pdfnet-node package.",
5
- "scripts": {
6
- "test": "run-script-os",
7
- "test:darwin:linux": "cd samples && sh runall.sh",
8
- "test:win32": "cd samples && runall.bat",
9
- "test:default": "echo '@pdftron/pdfnet-node doesn't support this platform.'"
10
- },
11
- "author": "Apryse Software Inc.",
12
- "license": "Commercial",
13
- "homepage": "https://www.pdftron.com",
14
- "dependencies": {
15
- "@pdftron/pdfnet-node": "^10.9.0-2-beta",
16
- "run-script-os": "^1.1.6",
17
- "underscore": "^1.13.6",
18
- "xhr2": "^0.2.1"
19
- }
20
- }
1
+ {
2
+ "name": "@pdftron/pdfnet-node-samples",
3
+ "version": "10.9.0",
4
+ "description": "Sample code for the @pdftron/pdfnet-node package.",
5
+ "scripts": {
6
+ "test": "run-script-os",
7
+ "test:darwin:linux": "cd samples && sh runall.sh",
8
+ "test:win32": "cd samples && runall.bat",
9
+ "test:default": "echo '@pdftron/pdfnet-node doesn't support this platform.'"
10
+ },
11
+ "author": "Apryse Software Inc.",
12
+ "license": "Commercial",
13
+ "homepage": "https://www.pdftron.com",
14
+ "dependencies": {
15
+ "@pdftron/pdfnet-node": "^10.6.0-4",
16
+ "run-script-os": "^1.1.6",
17
+ "underscore": "^1.13.6",
18
+ "xhr2": "^0.2.1"
19
+ }
20
+ }
21
+
package/readme.md CHANGED
@@ -1,38 +1,13 @@
1
- ## @pdftron/pdfnet-node
2
-
3
- This package leverages the full power of Apryse's native SDK for maximal performance and accuracy. In order to maintain consistency across platforms the Javascript API is used in the same manner as the PDFNet API available in Apryse's Web platform. Since access to the filesystem is included in Node.js/Electron some additional APIs requiring filesystem access have also been included.
4
-
5
- #### Supported platform, Node.js, and Electron versions
6
- This package depends on unmanaged add-on binaries, and the add-on binaries are not cross-platform. At the moment we have support for
7
- * **OS**: Linux (excluding Alpine), Windows(x64), Mac
8
- * **Node.js version**: 8 - 21
9
- * **Electron version**: 26 - 26
10
-
11
- Installation will fail if your OS, Node.js or Electron version is not supported.
12
-
13
- To install for Electron, *runtime* and *target* options are needed. For example, For Electron 6, we need to run *npm i @pdftron/pdfnet-node --runtime=electron --target=6.0.0*. Note that we need to use *6.0.0* for all Electron 6 versions.
14
-
15
- #### Usage
16
- Here is a code snippet to demonstrate how to use this package.
17
- ```javascript
18
- const { PDFNet } = require('@pdftron/pdfnet-node'); // you may need to set up NODE_PATH environment variable to make this work.
19
-
20
- const main = async() => {
21
- const doc = await PDFNet.PDFDoc.create();
22
- const page = await doc.pageCreate();
23
- doc.pagePushBack(page);
24
- doc.save('blank.pdf', PDFNet.SDFDoc.SaveOptions.e_linearized);
25
- };
26
-
27
- // add your own license key as the second parameter, e.g. in place of 'YOUR_LICENSE_KEY'.
28
- PDFNet.runWithCleanup(main, 'YOUR_LICENSE_KEY').catch(function(error) {
29
- console.log('Error: ' + JSON.stringify(error));
30
- }).then(function(){ return PDFNet.shutdown(); });
31
- ```
32
-
33
- There are some code samples in the [@pdftron/pdfnet-node-samples](https://www.npmjs.com/package/@pdftron/pdfnet-node-samples) package.
34
-
35
- To get started please see the documentation at https://www.apryse.com/documentation/nodejs/get-started/integration.
36
-
37
- #### Licensing
38
- Please go to https://www.apryse.com/pws/get-key to obtain a demo license or https://wwww.apryse.com/form/contact-sales to obtain a production key. For further information, please visit https://www.apryse.com/licensing.
1
+ ## @pdftron/pdfnet-node-samples
2
+
3
+ This package contains sample code for [@pdftron/pdfnet-node](https://www.npmjs.com/package/@pdftron/pdfnet-node).
4
+
5
+ #### Run the samples
6
+ Please enter your license key by replacing the LicenseKey variable value in *@pdftron/pdfnet-node-samples/samples/LicenseKey/LicenseKey.js*.
7
+
8
+ Run `npm run test` in the *@pdftron/pdfnet-node-samples* directory to run all the samples.
9
+
10
+ The samples are in the *@pdftron/pdfnet-node-samples/samples* directory after the installation for Node.js.
11
+
12
+ #### Licensing
13
+ 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. For further information, please visit https://www.pdftron.com/licensing.
@@ -1,116 +1,116 @@
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
- const { PDFNet } = require('@pdftron/pdfnet-node');
8
- const PDFTronLicense = require('../LicenseKey/LicenseKey');
9
-
10
- ((exports) => {
11
-
12
- exports.runAddImageTest = () => {
13
-
14
- const main = async() => {
15
- try {
16
- // Relative path to the folder containing test files.
17
- const inputURL = '../TestFiles/';
18
-
19
- const doc = await PDFNet.PDFDoc.create();
20
- doc.initSecurityHandler();
21
-
22
- const builder = await PDFNet.ElementBuilder.create(); // ElementBuilder, used to build new element Objects
23
- // create a new page writer that allows us to add/change page elements
24
- const writer = await PDFNet.ElementWriter.create(); // ElementWriter, used to write elements to the page
25
- // define new page dimensions
26
- let page = await doc.pageCreate();
27
-
28
- writer.beginOnPage(page, PDFNet.ElementWriter.WriteMode.e_overlay);
29
-
30
- // Adding a JPEG image to output file
31
- let img = await PDFNet.Image.createFromFile(doc, inputURL + 'peppers.jpg');
32
- let imgWidth = await img.getImageWidth();
33
- let imgHeight = await img.getImageHeight();
34
- let element = await builder.createImageScaled(img, 50, 500, imgWidth/2, imgHeight/2);
35
- writer.writePlacedElement(element);
36
-
37
- // Add a PNG to output file
38
- img = await PDFNet.Image.createFromFile(doc, inputURL + 'butterfly.png');
39
- matrix = await PDFNet.Matrix2D.create(100, 0, 0, 100, 300, 500);
40
- element = await builder.createImageFromMatrix(img, matrix);
41
- writer.writePlacedElement(element);
42
-
43
- // Add a GIF image to the output file
44
- img = await PDFNet.Image.createFromFile(doc, inputURL + 'pdfnet.gif');
45
- imgWidth = await img.getImageWidth();
46
- imgHeight = await img.getImageHeight();
47
- matrix = await PDFNet.Matrix2D.create(imgWidth, 0, 0, imgHeight, 50, 350);
48
- element = await builder.createImageFromMatrix(img, matrix);
49
- writer.writePlacedElement(element);
50
-
51
- // Add a TIFF image to the output file
52
- img = await PDFNet.Image.createFromFile(doc, inputURL + 'grayscale.tif');
53
- imgWidth = await img.getImageWidth();
54
- imgHeight = await img.getImageHeight();
55
- matrix = await PDFNet.Matrix2D.create(imgWidth, 0, 0, imgHeight, 10, 50);
56
- element = await builder.createImageFromMatrix(img, matrix);
57
- writer.writePlacedElement(element);
58
-
59
- writer.end();
60
- doc.pagePushBack(page);
61
-
62
- // Embed monochrome TIFF compressed using lossy JBIG2 filter
63
- const pageRect = await PDFNet.Rect.init(0, 0, 612, 794);
64
- page = await doc.pageCreate(pageRect);
65
- writer.beginOnPage(page);
66
-
67
- const hintSet = await PDFNet.ObjSet.create();
68
- const enc = await hintSet.createArray();
69
- await enc.pushBackName('JBIG2');
70
- await enc.pushBackName('Lossy');
71
-
72
- img = await PDFNet.Image.createFromFile(doc, inputURL + 'multipage.tif', enc);
73
- matrix = await PDFNet.Matrix2D.create(612, 0, 0, 794, 0, 0);
74
- element = await builder.createImageFromMatrix(img, matrix);
75
- writer.writePlacedElement(element);
76
-
77
- writer.end();
78
- doc.pagePushBack(page);
79
-
80
- // Add a JPEG200 to output file
81
- page = await doc.pageCreate();
82
- writer.beginOnPage(page);
83
-
84
- img = await PDFNet.Image.createFromFile(doc, inputURL + 'palm.jp2');
85
- imgWidth = await img.getImageWidth();
86
- imgHeight = await img.getImageHeight();
87
- matrix = await PDFNet.Matrix2D.create(imgWidth, 0, 0, imgHeight, 96, 80);
88
- element = await builder.createImageFromMatrix(img, matrix);
89
- writer.writePlacedElement(element);
90
-
91
- // write 'JPEG2000 Sample' text under image
92
- const timesFont = await PDFNet.Font.create(doc, PDFNet.Font.StandardType1Font.e_times_roman);
93
- writer.writeElement(await builder.createTextBeginWithFont(timesFont, 32));
94
- element = await builder.createNewTextRun('JPEG2000 Sample');
95
- matrix = await PDFNet.Matrix2D.create(1, 0, 0, 1, 190, 30);
96
- await element.setTextMatrix(matrix);
97
- writer.writeElement(element);
98
- const element2 = await builder.createTextEnd();
99
- writer.writeElement(element2);
100
-
101
- await writer.end();
102
- doc.pagePushBack(page); // add the page to the document
103
-
104
- await doc.save(inputURL + 'Output/addimage.pdf', PDFNet.SDFDoc.SaveOptions.e_linearized);
105
-
106
- console.log('Done. Result saved in addimage.pdf...');
107
- } catch (err) {
108
- console.log(err);
109
- }
110
- };
111
- PDFNet.runWithCleanup(main, PDFTronLicense.Key).catch(function(error){console.log('Error: ' + JSON.stringify(error));}).then(function(){return PDFNet.shutdown();});
112
- };
113
- exports.runAddImageTest();
114
- })(exports);
115
- // 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
+ const { PDFNet } = require('@pdftron/pdfnet-node');
8
+ const PDFTronLicense = require('../LicenseKey/LicenseKey');
9
+
10
+ ((exports) => {
11
+
12
+ exports.runAddImageTest = () => {
13
+
14
+ const main = async() => {
15
+ try {
16
+ // Relative path to the folder containing test files.
17
+ const inputURL = '../TestFiles/';
18
+
19
+ const doc = await PDFNet.PDFDoc.create();
20
+ doc.initSecurityHandler();
21
+
22
+ const builder = await PDFNet.ElementBuilder.create(); // ElementBuilder, used to build new element Objects
23
+ // create a new page writer that allows us to add/change page elements
24
+ const writer = await PDFNet.ElementWriter.create(); // ElementWriter, used to write elements to the page
25
+ // define new page dimensions
26
+ let page = await doc.pageCreate();
27
+
28
+ writer.beginOnPage(page, PDFNet.ElementWriter.WriteMode.e_overlay);
29
+
30
+ // Adding a JPEG image to output file
31
+ let img = await PDFNet.Image.createFromFile(doc, inputURL + 'peppers.jpg');
32
+ let imgWidth = await img.getImageWidth();
33
+ let imgHeight = await img.getImageHeight();
34
+ let element = await builder.createImageScaled(img, 50, 500, imgWidth/2, imgHeight/2);
35
+ writer.writePlacedElement(element);
36
+
37
+ // Add a PNG to output file
38
+ img = await PDFNet.Image.createFromFile(doc, inputURL + 'butterfly.png');
39
+ matrix = await PDFNet.Matrix2D.create(100, 0, 0, 100, 300, 500);
40
+ element = await builder.createImageFromMatrix(img, matrix);
41
+ writer.writePlacedElement(element);
42
+
43
+ // Add a GIF image to the output file
44
+ img = await PDFNet.Image.createFromFile(doc, inputURL + 'pdfnet.gif');
45
+ imgWidth = await img.getImageWidth();
46
+ imgHeight = await img.getImageHeight();
47
+ matrix = await PDFNet.Matrix2D.create(imgWidth, 0, 0, imgHeight, 50, 350);
48
+ element = await builder.createImageFromMatrix(img, matrix);
49
+ writer.writePlacedElement(element);
50
+
51
+ // Add a TIFF image to the output file
52
+ img = await PDFNet.Image.createFromFile(doc, inputURL + 'grayscale.tif');
53
+ imgWidth = await img.getImageWidth();
54
+ imgHeight = await img.getImageHeight();
55
+ matrix = await PDFNet.Matrix2D.create(imgWidth, 0, 0, imgHeight, 10, 50);
56
+ element = await builder.createImageFromMatrix(img, matrix);
57
+ writer.writePlacedElement(element);
58
+
59
+ writer.end();
60
+ doc.pagePushBack(page);
61
+
62
+ // Embed monochrome TIFF compressed using lossy JBIG2 filter
63
+ const pageRect = await PDFNet.Rect.init(0, 0, 612, 794);
64
+ page = await doc.pageCreate(pageRect);
65
+ writer.beginOnPage(page);
66
+
67
+ const hintSet = await PDFNet.ObjSet.create();
68
+ const enc = await hintSet.createArray();
69
+ await enc.pushBackName('JBIG2');
70
+ await enc.pushBackName('Lossy');
71
+
72
+ img = await PDFNet.Image.createFromFile(doc, inputURL + 'multipage.tif', enc);
73
+ matrix = await PDFNet.Matrix2D.create(612, 0, 0, 794, 0, 0);
74
+ element = await builder.createImageFromMatrix(img, matrix);
75
+ writer.writePlacedElement(element);
76
+
77
+ writer.end();
78
+ doc.pagePushBack(page);
79
+
80
+ // Add a JPEG200 to output file
81
+ page = await doc.pageCreate();
82
+ writer.beginOnPage(page);
83
+
84
+ img = await PDFNet.Image.createFromFile(doc, inputURL + 'palm.jp2');
85
+ imgWidth = await img.getImageWidth();
86
+ imgHeight = await img.getImageHeight();
87
+ matrix = await PDFNet.Matrix2D.create(imgWidth, 0, 0, imgHeight, 96, 80);
88
+ element = await builder.createImageFromMatrix(img, matrix);
89
+ writer.writePlacedElement(element);
90
+
91
+ // write 'JPEG2000 Sample' text under image
92
+ const timesFont = await PDFNet.Font.create(doc, PDFNet.Font.StandardType1Font.e_times_roman);
93
+ writer.writeElement(await builder.createTextBeginWithFont(timesFont, 32));
94
+ element = await builder.createNewTextRun('JPEG2000 Sample');
95
+ matrix = await PDFNet.Matrix2D.create(1, 0, 0, 1, 190, 30);
96
+ await element.setTextMatrix(matrix);
97
+ writer.writeElement(element);
98
+ const element2 = await builder.createTextEnd();
99
+ writer.writeElement(element2);
100
+
101
+ await writer.end();
102
+ doc.pagePushBack(page); // add the page to the document
103
+
104
+ await doc.save(inputURL + 'Output/addimage.pdf', PDFNet.SDFDoc.SaveOptions.e_linearized);
105
+
106
+ console.log('Done. Result saved in addimage.pdf...');
107
+ } catch (err) {
108
+ console.log(err);
109
+ }
110
+ };
111
+ PDFNet.runWithCleanup(main, PDFTronLicense.Key).catch(function(error){console.log('Error: ' + JSON.stringify(error));}).then(function(){return PDFNet.shutdown();});
112
+ };
113
+ exports.runAddImageTest();
114
+ })(exports);
115
+ // eslint-disable-next-line spaced-comment
116
116
  //# sourceURL=AddImageTest.js
@@ -1,78 +1,78 @@
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
- // The following sample illustrates how to convert AdvancedImaging documents to PDF format
8
- //
9
- // The AdvancedImaging module is an optional PDFNet Add-on that can be used to convert AdvancedImaging
10
- // documents into PDF documents
11
- //
12
- // The Apryse SDK AdvancedImaging module can be downloaded from http://www.pdftron.com/
13
- //---------------------------------------------------------------------------------------
14
-
15
- const { PDFNet } = require('@pdftron/pdfnet-node');
16
- const PDFTronLicense = require('../LicenseKey/LicenseKey');
17
-
18
- ((exports) => {
19
- 'use strict';
20
-
21
- exports.runAdvancedImagingTest = () => {
22
-
23
- const main = async () => {
24
-
25
- try {
26
- await PDFNet.addResourceSearchPath('../../lib/');
27
-
28
- if (!await PDFNet.AdvancedImagingModule.isModuleAvailable()) {
29
- console.log('\nUnable to run AdvancedImagingTest: Apryse SDK AdvancedImaging module not available.');
30
- console.log('---------------------------------------------------------------');
31
- console.log('The AdvancedImaging module is an optional add-on, available for download');
32
- console.log('at http://www.pdftron.com/. If you have already downloaded this');
33
- console.log('module, ensure that the SDK is able to find the required files');
34
- console.log('using the PDFNet::AddResourceSearchPath() function.\n');
35
-
36
- return;
37
- }
38
-
39
- // Relative path to the folder containing test files.
40
- const inputPath = '../TestFiles/AdvancedImaging/';
41
- const outputPath = '../TestFiles/Output/';
42
-
43
- const dicom_input_file = 'xray.dcm';
44
- const heic_input_file = 'jasper.heic';
45
- const psd_input_file = 'tiger.psd';
46
- const output_ext = '.pdf';
47
-
48
- const doc = await PDFNet.PDFDoc.create();
49
- doc.initSecurityHandler();
50
-
51
- const opts = new PDFNet.Convert.AdvancedImagingConvertOptions();
52
- opts.setDefaultDPI(72);
53
- await PDFNet.Convert.fromDICOM(doc, inputPath + dicom_input_file, opts);
54
- await doc.save(outputPath + dicom_input_file + output_ext, PDFNet.SDFDoc.SaveOptions.e_linearized);
55
-
56
- const doc2 = await PDFNet.PDFDoc.create();
57
- doc2.initSecurityHandler();
58
-
59
- await PDFNet.Convert.toPdf(doc2, inputPath + heic_input_file);
60
- await doc2.save(outputPath + heic_input_file + output_ext, PDFNet.SDFDoc.SaveOptions.e_linearized);
61
-
62
- const doc3 = await PDFNet.PDFDoc.create();
63
- doc3.initSecurityHandler();
64
-
65
- await PDFNet.Convert.toPdf(doc3, inputPath + psd_input_file);
66
- await doc3.save(outputPath + psd_input_file + output_ext, PDFNet.SDFDoc.SaveOptions.e_linearized);
67
- } catch (err) {
68
- console.log(err);
69
- }
70
- };
71
- PDFNet.runWithCleanup(main, PDFTronLicense.Key).catch(function (error) {
72
- console.log('Error: ' + JSON.stringify(error));
73
- }).then(function () { return PDFNet.shutdown(); });
74
- };
75
- exports.runAdvancedImagingTest();
76
- })(exports);
77
- // eslint-disable-next-line spaced-comment
78
- //# sourceURL=AdvancedImagingTest.js
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
+ // The following sample illustrates how to convert AdvancedImaging documents to PDF format
8
+ //
9
+ // The AdvancedImaging module is an optional PDFNet Add-on that can be used to convert AdvancedImaging
10
+ // documents into PDF documents
11
+ //
12
+ // The Apryse SDK AdvancedImaging module can be downloaded from http://www.pdftron.com/
13
+ //---------------------------------------------------------------------------------------
14
+
15
+ const { PDFNet } = require('@pdftron/pdfnet-node');
16
+ const PDFTronLicense = require('../LicenseKey/LicenseKey');
17
+
18
+ ((exports) => {
19
+ 'use strict';
20
+
21
+ exports.runAdvancedImagingTest = () => {
22
+
23
+ const main = async () => {
24
+
25
+ try {
26
+ await PDFNet.addResourceSearchPath('../../lib/');
27
+
28
+ if (!await PDFNet.AdvancedImagingModule.isModuleAvailable()) {
29
+ console.log('\nUnable to run AdvancedImagingTest: Apryse SDK AdvancedImaging module not available.');
30
+ console.log('---------------------------------------------------------------');
31
+ console.log('The AdvancedImaging module is an optional add-on, available for download');
32
+ console.log('at http://www.pdftron.com/. If you have already downloaded this');
33
+ console.log('module, ensure that the SDK is able to find the required files');
34
+ console.log('using the PDFNet::AddResourceSearchPath() function.\n');
35
+
36
+ return;
37
+ }
38
+
39
+ // Relative path to the folder containing test files.
40
+ const inputPath = '../TestFiles/AdvancedImaging/';
41
+ const outputPath = '../TestFiles/Output/';
42
+
43
+ const dicom_input_file = 'xray.dcm';
44
+ const heic_input_file = 'jasper.heic';
45
+ const psd_input_file = 'tiger.psd';
46
+ const output_ext = '.pdf';
47
+
48
+ const doc = await PDFNet.PDFDoc.create();
49
+ doc.initSecurityHandler();
50
+
51
+ const opts = new PDFNet.Convert.AdvancedImagingConvertOptions();
52
+ opts.setDefaultDPI(72);
53
+ await PDFNet.Convert.fromDICOM(doc, inputPath + dicom_input_file, opts);
54
+ await doc.save(outputPath + dicom_input_file + output_ext, PDFNet.SDFDoc.SaveOptions.e_linearized);
55
+
56
+ const doc2 = await PDFNet.PDFDoc.create();
57
+ doc2.initSecurityHandler();
58
+
59
+ await PDFNet.Convert.toPdf(doc2, inputPath + heic_input_file);
60
+ await doc2.save(outputPath + heic_input_file + output_ext, PDFNet.SDFDoc.SaveOptions.e_linearized);
61
+
62
+ const doc3 = await PDFNet.PDFDoc.create();
63
+ doc3.initSecurityHandler();
64
+
65
+ await PDFNet.Convert.toPdf(doc3, inputPath + psd_input_file);
66
+ await doc3.save(outputPath + psd_input_file + output_ext, PDFNet.SDFDoc.SaveOptions.e_linearized);
67
+ } catch (err) {
68
+ console.log(err);
69
+ }
70
+ };
71
+ PDFNet.runWithCleanup(main, PDFTronLicense.Key).catch(function (error) {
72
+ console.log('Error: ' + JSON.stringify(error));
73
+ }).then(function () { return PDFNet.shutdown(); });
74
+ };
75
+ exports.runAdvancedImagingTest();
76
+ })(exports);
77
+ // eslint-disable-next-line spaced-comment
78
+ //# sourceURL=AdvancedImagingTest.js