@pdftron/pdfnet-node-samples 9.4.2 → 9.5.0-beta

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 (147) hide show
  1. package/package.json +18 -18
  2. package/readme.md +12 -12
  3. package/samples/AddImageTest/AddImageTest.js +1 -1
  4. package/samples/AddImageTest/NODEJS/AddImageTest.js +116 -0
  5. package/samples/AddImageTest/NODEJS/RunTest.sh +2 -0
  6. package/samples/AdvancedImagingTest/AdvancedImagingTest.js +1 -1
  7. package/samples/AdvancedImagingTest/NODEJS/AdvancedImagingTest.js +78 -0
  8. package/samples/AdvancedImagingTest/NODEJS/RunTest.sh +2 -0
  9. package/samples/AnnotationTest/AnnotationTest.js +1 -1
  10. package/samples/AnnotationTest/NODEJS/AnnotationTest.js +642 -0
  11. package/samples/AnnotationTest/NODEJS/RunTest.sh +2 -0
  12. package/samples/BookmarkTest/BookmarkTest.js +1 -1
  13. package/samples/BookmarkTest/NODEJS/BookmarkTest.js +220 -0
  14. package/samples/BookmarkTest/NODEJS/RunTest.sh +2 -0
  15. package/samples/CAD2PDFTest/CAD2PDFTest.js +79 -79
  16. package/samples/CAD2PDFTest/NODEJS/CAD2PDFTest.js +80 -0
  17. package/samples/CAD2PDFTest/NODEJS/RunTest.sh +2 -0
  18. package/samples/ContentReplacerTest/ContentReplacerTest.js +1 -1
  19. package/samples/ContentReplacerTest/NODEJS/ContentReplacerTest.js +75 -0
  20. package/samples/ContentReplacerTest/NODEJS/RunTest.sh +2 -0
  21. package/samples/ConvertTest/ConvertTest.js +270 -256
  22. package/samples/ConvertTest/NODEJS/ConvertTest.js +270 -0
  23. package/samples/ConvertTest/NODEJS/RunTest.sh +2 -0
  24. package/samples/DataExtractionTest/DataExtractionTest.js +180 -0
  25. package/samples/DataExtractionTest/NODEJS/DataExtractionTest.js +180 -0
  26. package/samples/DataExtractionTest/NODEJS/RunTest.sh +2 -0
  27. package/samples/DigitalSignaturesTest/DigitalSignaturesTest.js +526 -526
  28. package/samples/DigitalSignaturesTest/NODEJS/DigitalSignaturesTest.js +527 -0
  29. package/samples/DigitalSignaturesTest/NODEJS/RunTest.sh +2 -0
  30. package/samples/ElementBuilderTest/ElementBuilderTest.js +1 -1
  31. package/samples/ElementBuilderTest/NODEJS/ElementBuilderTest.js +514 -0
  32. package/samples/ElementBuilderTest/NODEJS/RunTest.sh +2 -0
  33. package/samples/ElementEditTest/ElementEditTest.js +1 -1
  34. package/samples/ElementEditTest/NODEJS/ElementEditTest.js +111 -0
  35. package/samples/ElementEditTest/NODEJS/RunTest.sh +2 -0
  36. package/samples/ElementReaderAdvTest/ElementReaderAdvTest.js +1 -1
  37. package/samples/ElementReaderAdvTest/NODEJS/ElementReaderAdvTest.js +305 -0
  38. package/samples/ElementReaderAdvTest/NODEJS/RunTest.sh +2 -0
  39. package/samples/ElementReaderTest/ElementReaderTest.js +1 -1
  40. package/samples/ElementReaderTest/NODEJS/ElementReaderTest.js +77 -0
  41. package/samples/ElementReaderTest/NODEJS/RunTest.sh +2 -0
  42. package/samples/EncTest/EncTest.js +1 -1
  43. package/samples/EncTest/NODEJS/EncTest.js +176 -0
  44. package/samples/EncTest/NODEJS/RunTest.sh +2 -0
  45. package/samples/FDFTest/FDFTest.js +218 -218
  46. package/samples/FDFTest/NODEJS/FDFTest.js +219 -0
  47. package/samples/FDFTest/NODEJS/RunTest.sh +2 -0
  48. package/samples/HTML2PDFTest/HTML2PDFTest.js +165 -165
  49. package/samples/HTML2PDFTest/NODEJS/HTML2PDFTest.js +166 -0
  50. package/samples/HTML2PDFTest/NODEJS/RunTest.sh +2 -0
  51. package/samples/HighlightsTest/HighlightsTest.js +1 -1
  52. package/samples/HighlightsTest/NODEJS/HighlightsTest.js +97 -0
  53. package/samples/HighlightsTest/NODEJS/RunTest.sh +2 -0
  54. package/samples/ImageExtractTest/ImageExtractTest.js +129 -129
  55. package/samples/ImageExtractTest/NODEJS/ImageExtractTest.js +130 -0
  56. package/samples/ImageExtractTest/NODEJS/RunTest.sh +2 -0
  57. package/samples/ImpositionTest/ImpositionTest.js +86 -86
  58. package/samples/ImpositionTest/NODEJS/ImpositionTest.js +87 -0
  59. package/samples/ImpositionTest/NODEJS/RunTest.sh +2 -0
  60. package/samples/InteractiveFormsTest/InteractiveFormsTest.js +381 -381
  61. package/samples/InteractiveFormsTest/NODEJS/InteractiveFormsTest.js +382 -0
  62. package/samples/InteractiveFormsTest/NODEJS/RunTest.sh +2 -0
  63. package/samples/JBIG2Test/JBIG2Test.js +88 -88
  64. package/samples/JBIG2Test/NODEJS/JBIG2Test.js +89 -0
  65. package/samples/JBIG2Test/NODEJS/RunTest.sh +2 -0
  66. package/samples/LicenseKey/NODEJS/LicenseKey.js +11 -0
  67. package/samples/LogicalStructureTest/LogicalStructureTest.js +1 -1
  68. package/samples/LogicalStructureTest/NODEJS/LogicalStructureTest.js +251 -0
  69. package/samples/LogicalStructureTest/NODEJS/RunTest.sh +2 -0
  70. package/samples/OCRTest/NODEJS/OCRTest.js +235 -0
  71. package/samples/OCRTest/NODEJS/RunTest.sh +2 -0
  72. package/samples/OCRTest/OCRTest.js +234 -234
  73. package/samples/OfficeTemplateTest/NODEJS/OfficeTemplateTest.js +79 -0
  74. package/samples/OfficeTemplateTest/NODEJS/RunTest.sh +2 -0
  75. package/samples/OfficeTemplateTest/OfficeTemplateTest.js +79 -77
  76. package/samples/OfficeToPDFTest/NODEJS/OfficeToPDFTest.js +125 -0
  77. package/samples/OfficeToPDFTest/NODEJS/RunTest.sh +2 -0
  78. package/samples/OfficeToPDFTest/OfficeToPDFTest.js +125 -125
  79. package/samples/OptimizerTest/NODEJS/OptimizerTest.js +192 -0
  80. package/samples/OptimizerTest/NODEJS/RunTest.sh +2 -0
  81. package/samples/OptimizerTest/OptimizerTest.js +191 -191
  82. package/samples/PDF2HtmlTest/NODEJS/PDF2HtmlTest.js +123 -0
  83. package/samples/PDF2HtmlTest/NODEJS/RunTest.sh +2 -0
  84. package/samples/PDF2HtmlTest/PDF2HtmlTest.js +1 -1
  85. package/samples/PDF2OfficeTest/NODEJS/PDF2OfficeTest.js +158 -0
  86. package/samples/PDF2OfficeTest/NODEJS/RunTest.sh +2 -0
  87. package/samples/PDF2OfficeTest/PDF2OfficeTest.js +1 -1
  88. package/samples/PDFATest/NODEJS/PDFATest.js +85 -0
  89. package/samples/PDFATest/NODEJS/RunTest.sh +2 -0
  90. package/samples/PDFATest/PDFATest.js +1 -1
  91. package/samples/PDFDocMemoryTest/NODEJS/PDFDocMemoryTest.js +85 -0
  92. package/samples/PDFDocMemoryTest/NODEJS/RunTest.sh +2 -0
  93. package/samples/PDFDocMemoryTest/PDFDocMemoryTest.js +84 -84
  94. package/samples/PDFDrawTest/NODEJS/PDFDrawTest.js +306 -0
  95. package/samples/PDFDrawTest/NODEJS/RunTest.sh +2 -0
  96. package/samples/PDFDrawTest/PDFDrawTest.js +1 -1
  97. package/samples/PDFLayersTest/NODEJS/PDFLayersTest.js +295 -0
  98. package/samples/PDFLayersTest/NODEJS/RunTest.sh +2 -0
  99. package/samples/PDFLayersTest/PDFLayersTest.js +1 -1
  100. package/samples/PDFPackageTest/NODEJS/PDFPackageTest.js +112 -0
  101. package/samples/PDFPackageTest/NODEJS/RunTest.sh +2 -0
  102. package/samples/PDFPackageTest/PDFPackageTest.js +111 -111
  103. package/samples/PDFPageTest/NODEJS/PDFPageTest.js +190 -0
  104. package/samples/PDFPageTest/NODEJS/RunTest.sh +2 -0
  105. package/samples/PDFPageTest/PDFPageTest.js +1 -1
  106. package/samples/PDFRedactTest/NODEJS/PDFRedactTest.js +75 -0
  107. package/samples/PDFRedactTest/NODEJS/RunTest.sh +2 -0
  108. package/samples/PDFRedactTest/PDFRedactTest.js +1 -1
  109. package/samples/PageLabelsTest/NODEJS/PageLabelsTest.js +139 -0
  110. package/samples/PageLabelsTest/NODEJS/RunTest.sh +2 -0
  111. package/samples/PageLabelsTest/PageLabelsTest.js +138 -138
  112. package/samples/PatternTest/NODEJS/PatternTest.js +227 -0
  113. package/samples/PatternTest/NODEJS/RunTest.sh +2 -0
  114. package/samples/PatternTest/PatternTest.js +226 -226
  115. package/samples/RectTest/NODEJS/RectTest.js +41 -0
  116. package/samples/RectTest/NODEJS/RunTest.sh +2 -0
  117. package/samples/RectTest/RectTest.js +1 -1
  118. package/samples/SDFTest/NODEJS/RunTest.sh +2 -0
  119. package/samples/SDFTest/NODEJS/SDFTest.js +88 -0
  120. package/samples/SDFTest/SDFTest.js +2 -3
  121. package/samples/StamperTest/NODEJS/RunTest.sh +2 -0
  122. package/samples/StamperTest/NODEJS/StamperTest.js +256 -0
  123. package/samples/StamperTest/StamperTest.js +1 -1
  124. package/samples/TestFiles/financial.pdf +0 -0
  125. package/samples/TestFiles/formfields-scanned.pdf +0 -0
  126. package/samples/TestFiles/formfields.pdf +0 -0
  127. package/samples/TestFiles/table.pdf +0 -0
  128. package/samples/TestFiles/tiger.svg +378 -0
  129. package/samples/TextExtractTest/NODEJS/RunTest.sh +2 -0
  130. package/samples/TextExtractTest/NODEJS/TextExtractTest.js +287 -0
  131. package/samples/TextExtractTest/TextExtractTest.js +1 -1
  132. package/samples/TextSearchTest/NODEJS/RunTest.sh +2 -0
  133. package/samples/TextSearchTest/NODEJS/TextSearchTest.js +122 -0
  134. package/samples/TextSearchTest/TextSearchTest.js +1 -1
  135. package/samples/U3DTest/NODEJS/RunTest.sh +2 -0
  136. package/samples/U3DTest/NODEJS/U3DTest.js +105 -0
  137. package/samples/U3DTest/U3DTest.js +104 -104
  138. package/samples/UndoRedoTest/NODEJS/RunTest.sh +2 -0
  139. package/samples/UndoRedoTest/NODEJS/UndoRedoTest.js +101 -0
  140. package/samples/UndoRedoTest/UndoRedoTest.js +1 -1
  141. package/samples/UnicodeWriteTest/NODEJS/RunTest.sh +2 -0
  142. package/samples/UnicodeWriteTest/NODEJS/UnicodeWriteTest.js +174 -0
  143. package/samples/UnicodeWriteTest/UnicodeWriteTest.js +1 -1
  144. package/samples/WebViewerConvertTest/NODEJS/RunTest.sh +2 -0
  145. package/samples/WebViewerConvertTest/NODEJS/WebViewerConvertTest.js +136 -0
  146. package/samples/WebViewerConvertTest/WebViewerConvertTest.js +135 -135
  147. package/samples/runall.bat +12 -12
@@ -1,77 +1,79 @@
1
- //---------------------------------------------------------------------------------------
2
- // Copyright (c) 2001-2022 by PDFTron Systems Inc. All Rights Reserved.
3
- // Consult legal.txt regarding legal and license information.
4
- //---------------------------------------------------------------------------------------
5
-
6
- //------------------------------------------------------------------------------
7
- // The following sample illustrates how to use the PDF::Convert utility class
8
- // to convert MS Office files to PDF and replace templated tags present in the document
9
- // with content supplied via json
10
- //
11
- // For a detailed specification of the template format and supported features,
12
- // see: https://www.pdftron.com/documentation/core/guides/generate-via-template/data-model/
13
- //
14
- // This conversion is performed entirely within the PDFNet and has *no*
15
- // external or system dependencies -- Conversion results will be
16
- // the same whether on Windows, Linux or Android.
17
- //
18
- // Please contact us if you have any questions.
19
- //------------------------------------------------------------------------------
20
-
21
- const { PDFNet } = require('@pdftron/pdfnet-node');
22
- const PDFTronLicense = require('../LicenseKey/LicenseKey');
23
-
24
- ((exports) => {
25
- 'use strict';
26
-
27
- exports.runOfficeTemplateTest = () => {
28
-
29
- const inputPath = '../TestFiles/';
30
- const outputPath = inputPath + 'Output/';
31
- const inputFilename = 'SYH_Letter.docx'
32
- const outputFilename = 'SYH_Letter.pdf'
33
-
34
- const main = async () => {
35
-
36
- PDFNet.addResourceSearchPath('../Resources');
37
-
38
- try {
39
- const options = new PDFNet.Convert.OfficeToPDFOptions();
40
-
41
- const json = JSON.stringify({
42
- 'dest_given_name': 'Janice N.',
43
- 'dest_street_address': "187 Duizelstraat",
44
- 'dest_surname': 'Symonds',
45
- 'dest_title': 'Ms.',
46
- 'land_location': '225 Parc St., Rochelle, QC ',
47
- 'lease_problem': 'According to the city records, the lease was initiated in September 2010 and never terminated',
48
- 'logo': { 'image_url': inputPath + 'logo_red.png', 'width' : 64, 'height': 64 },
49
- 'sender_name': 'Arnold Smith'
50
- });
51
-
52
- const templateDoc = await PDFNet.Convert.createOfficeTemplateWithPath(inputPath + inputFilename, options);
53
-
54
- const pdfdoc = await templateDoc.fillTemplateJson(json);
55
-
56
- // save the result
57
- await pdfdoc.save(outputPath + outputFilename, PDFNet.SDFDoc.SaveOptions.e_linearized);
58
-
59
- // And we're done!
60
- console.log('Saved ' + outputFilename);
61
-
62
- } catch (err) {
63
- console.log(err);
64
- }
65
-
66
- console.log('Done.');
67
- };
68
-
69
- PDFNet.runWithCleanup(main, PDFTronLicense.Key).catch(function (error) {
70
- console.log('Error: ' + JSON.stringify(error));
71
- }).then(function () { return PDFNet.shutdown(); });
72
-
73
- };
74
- exports.runOfficeTemplateTest();
75
- })(exports);
76
- // eslint-disable-next-line spaced-comment
77
- //# sourceURL=OfficeTemplateTest.js
1
+ //---------------------------------------------------------------------------------------
2
+ // Copyright (c) 2001-2023 by PDFTron Systems Inc. All Rights Reserved.
3
+ // Consult legal.txt regarding legal and license information.
4
+ //---------------------------------------------------------------------------------------
5
+
6
+ //------------------------------------------------------------------------------
7
+ // The following sample illustrates how to use the PDF::Convert utility class
8
+ // to convert MS Office files to PDF and replace templated tags present in the document
9
+ // with content supplied via json
10
+ //
11
+ // For a detailed specification of the template format and supported features,
12
+ // see: https://www.pdftron.com/documentation/core/guides/generate-via-template/data-model/
13
+ //
14
+ // This conversion is performed entirely within the PDFNet and has *no*
15
+ // external or system dependencies -- Conversion results will be
16
+ // the same whether on Windows, Linux or Android.
17
+ //
18
+ // Please contact us if you have any questions.
19
+ //------------------------------------------------------------------------------
20
+
21
+ const { PDFNet } = require('@pdftron/pdfnet-node');
22
+ const PDFTronLicense = require('../LicenseKey/LicenseKey');
23
+
24
+ ((exports) => {
25
+ 'use strict';
26
+
27
+ exports.runOfficeTemplateTest = () => {
28
+
29
+ const inputPath = '../TestFiles/';
30
+ const outputPath = inputPath + 'Output/';
31
+ const inputFilename = 'SYH_Letter.docx'
32
+ const outputFilename = 'SYH_Letter.pdf'
33
+
34
+ const main = async () => {
35
+
36
+ PDFNet.addResourceSearchPath('../Resources');
37
+
38
+ try {
39
+ const options = new PDFNet.Convert.OfficeToPDFOptions();
40
+
41
+ const json = JSON.stringify({
42
+ 'dest_given_name': 'Janice N.',
43
+ 'dest_street_address': "187 Duizelstraat",
44
+ 'dest_surname': 'Symonds',
45
+ 'dest_title': 'Ms.',
46
+ 'land_location': '225 Parc St., Rochelle, QC ',
47
+ 'lease_problem': 'According to the city records, the lease was initiated in September 2010 and never terminated',
48
+ 'logo': { 'image_url': inputPath + 'logo_red.png', 'width' : 64, 'height': 64 },
49
+ 'sender_name': 'Arnold Smith'
50
+ });
51
+
52
+ // Create a TemplateDocument object from an input office file.
53
+ const templateDoc = await PDFNet.Convert.createOfficeTemplateWithPath(inputPath + inputFilename, options);
54
+
55
+ // Fill the template with data from a JSON string, producing a PDF document.
56
+ const pdfdoc = await templateDoc.fillTemplateJson(json);
57
+
58
+ // Save the PDF to a file.
59
+ await pdfdoc.save(outputPath + outputFilename, PDFNet.SDFDoc.SaveOptions.e_linearized);
60
+
61
+ // And we're done!
62
+ console.log('Saved ' + outputFilename);
63
+
64
+ } catch (err) {
65
+ console.log(err);
66
+ }
67
+
68
+ console.log('Done.');
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
+ };
76
+ exports.runOfficeTemplateTest();
77
+ })(exports);
78
+ // eslint-disable-next-line spaced-comment
79
+ //# sourceURL=OfficeTemplateTest.js
@@ -0,0 +1,125 @@
1
+ //---------------------------------------------------------------------------------------
2
+ // Copyright (c) 2001-2021 by PDFTron Systems Inc. All Rights Reserved.
3
+ // Consult legal.txt regarding legal and license information.
4
+ //---------------------------------------------------------------------------------------
5
+
6
+ //------------------------------------------------------------------------------
7
+ // The following sample illustrates how to use the PDF::Convert utility class
8
+ // to convert MS Office files to PDF
9
+ //
10
+ // This conversion is performed entirely within the PDFNet and has *no*
11
+ // external or system dependencies dependencies -- Conversion results will be
12
+ // the same whether on Windows, Linux or Android.
13
+ //
14
+ // Please contact us if you have any questions.
15
+ //------------------------------------------------------------------------------
16
+
17
+ const { PDFNet } = require('../../../lib/pdfnet.js');
18
+ const PDFTronLicense = require('../../LicenseKey/NODEJS/LicenseKey');
19
+
20
+ ((exports) => {
21
+ 'use strict';
22
+
23
+ exports.runOfficeToPDF = () => {
24
+
25
+ const inputPath = '../../TestFiles/';
26
+ const outputPath = inputPath + 'Output/';
27
+
28
+ const simpleDocxConvert = async (inputFilename, outputFilename) => {
29
+ // perform the conversion with no optional parameters
30
+ const pdfdoc = await PDFNet.Convert.officeToPdfWithPath(inputPath + inputFilename);
31
+
32
+ // save the result
33
+ await pdfdoc.save(outputPath + outputFilename, PDFNet.SDFDoc.SaveOptions.e_linearized);
34
+
35
+ // And we're done!
36
+ console.log('Saved ' + outputFilename);
37
+ }
38
+
39
+ const flexibleDocxConvert = async (inputFilename, outputFilename) => {
40
+ // Start with a PDFDoc (the conversion destination)
41
+ const pdfdoc = await PDFNet.PDFDoc.create();
42
+ pdfdoc.initSecurityHandler();
43
+
44
+ const options = new PDFNet.Convert.OfficeToPDFOptions();
45
+
46
+ // set up smart font substitutions to improve conversion results
47
+ // in situations where the original fonts are not available
48
+ options.setSmartSubstitutionPluginPath(inputPath);
49
+
50
+ // create a conversion object -- this sets things up but does not yet
51
+ // perform any conversion logic.
52
+ // in a multithreaded environment, this object can be used to monitor
53
+ // the conversion progress and potentially cancel it as well
54
+ const conversion = await PDFNet.Convert.streamingPdfConversionWithPdfAndPath(
55
+ pdfdoc, inputPath + inputFilename, options);
56
+
57
+ // Print the progress of the conversion.
58
+ /*
59
+ console.log('Status: ' + await conversion.getProgress() * 100 + '%, '
60
+ + await conversion.getProgressLabel());
61
+ */
62
+
63
+ // actually perform the conversion
64
+ // this particular method will not throw on conversion failure, but will
65
+ // return an error status instead
66
+
67
+ while (await conversion.getConversionStatus() === PDFNet.DocumentConversion.Result.e_Incomplete) {
68
+ await conversion.convertNextPage();
69
+ // print out the progress status as we go
70
+ /*
71
+ console.log('Status: ' + await conversion.getProgress() * 100 + '%, '
72
+ + await conversion.getProgressLabel());
73
+ */
74
+ }
75
+
76
+ if (await conversion.getConversionStatus() === PDFNet.DocumentConversion.Result.e_Success) {
77
+ const num_warnings = await conversion.getNumWarnings();
78
+
79
+ // print information about the conversion
80
+ for (let i = 0; i < num_warnings; ++i) {
81
+ console.log('Conversion Warning: ' + await conversion.getWarningString(i));
82
+ }
83
+
84
+ // save the result
85
+ await pdfdoc.save(outputPath + outputFilename, PDFNet.SDFDoc.SaveOptions.e_linearized);
86
+ // done
87
+ console.log('Saved ' + outputFilename);
88
+ }
89
+ else {
90
+ console.log('Encountered an error during conversion: '
91
+ + await conversion.getErrorString());
92
+ }
93
+ }
94
+
95
+
96
+ const main = async () => {
97
+
98
+ PDFNet.addResourceSearchPath('../../Resources');
99
+
100
+ try {
101
+ // first the one-line conversion function
102
+ await simpleDocxConvert('Fishermen.docx', 'Fishermen.pdf');
103
+
104
+ // then the more flexible line-by-line conversion API
105
+ await flexibleDocxConvert('the_rime_of_the_ancient_mariner.docx',
106
+ 'the_rime_of_the_ancient_mariner.pdf');
107
+
108
+ // conversion of RTL content
109
+ await flexibleDocxConvert('factsheet_Arabic.docx', 'factsheet_Arabic.pdf');
110
+ } catch (err) {
111
+ console.log(err);
112
+ }
113
+
114
+ console.log('Done.');
115
+ };
116
+
117
+ PDFNet.runWithCleanup(main, PDFTronLicense.Key).catch(function (error) {
118
+ console.log('Error: ' + JSON.stringify(error));
119
+ }).then(function () { return PDFNet.shutdown(); });
120
+
121
+ };
122
+ exports.runOfficeToPDF();
123
+ })(exports);
124
+ // eslint-disable-next-line spaced-comment
125
+ //# sourceURL=OfficeToPDFTest.js
@@ -0,0 +1,2 @@
1
+ #!/bin/sh
2
+ node OfficeToPDFTest.js
@@ -1,125 +1,125 @@
1
- //---------------------------------------------------------------------------------------
2
- // Copyright (c) 2001-2022 by PDFTron Systems Inc. All Rights Reserved.
3
- // Consult legal.txt regarding legal and license information.
4
- //---------------------------------------------------------------------------------------
5
-
6
- //------------------------------------------------------------------------------
7
- // The following sample illustrates how to use the PDF::Convert utility class
8
- // to convert MS Office files to PDF
9
- //
10
- // This conversion is performed entirely within the PDFNet and has *no*
11
- // external or system dependencies dependencies -- Conversion results will be
12
- // the same whether on Windows, Linux or Android.
13
- //
14
- // Please contact us if you have any questions.
15
- //------------------------------------------------------------------------------
16
-
17
- const { PDFNet } = require('@pdftron/pdfnet-node');
18
- const PDFTronLicense = require('../LicenseKey/LicenseKey');
19
-
20
- ((exports) => {
21
- 'use strict';
22
-
23
- exports.runOfficeToPDF = () => {
24
-
25
- const inputPath = '../TestFiles/';
26
- const outputPath = inputPath + 'Output/';
27
-
28
- const simpleDocxConvert = async (inputFilename, outputFilename) => {
29
- // perform the conversion with no optional parameters
30
- const pdfdoc = await PDFNet.Convert.officeToPdfWithPath(inputPath + inputFilename);
31
-
32
- // save the result
33
- await pdfdoc.save(outputPath + outputFilename, PDFNet.SDFDoc.SaveOptions.e_linearized);
34
-
35
- // And we're done!
36
- console.log('Saved ' + outputFilename);
37
- }
38
-
39
- const flexibleDocxConvert = async (inputFilename, outputFilename) => {
40
- // Start with a PDFDoc (the conversion destination)
41
- const pdfdoc = await PDFNet.PDFDoc.create();
42
- pdfdoc.initSecurityHandler();
43
-
44
- const options = new PDFNet.Convert.OfficeToPDFOptions();
45
-
46
- // set up smart font substitutions to improve conversion results
47
- // in situations where the original fonts are not available
48
- options.setSmartSubstitutionPluginPath(inputPath);
49
-
50
- // create a conversion object -- this sets things up but does not yet
51
- // perform any conversion logic.
52
- // in a multithreaded environment, this object can be used to monitor
53
- // the conversion progress and potentially cancel it as well
54
- const conversion = await PDFNet.Convert.streamingPdfConversionWithPdfAndPath(
55
- pdfdoc, inputPath + inputFilename, options);
56
-
57
- // Print the progress of the conversion.
58
- /*
59
- console.log('Status: ' + await conversion.getProgress() * 100 + '%, '
60
- + await conversion.getProgressLabel());
61
- */
62
-
63
- // actually perform the conversion
64
- // this particular method will not throw on conversion failure, but will
65
- // return an error status instead
66
-
67
- while (await conversion.getConversionStatus() === PDFNet.DocumentConversion.Result.e_Incomplete) {
68
- await conversion.convertNextPage();
69
- // print out the progress status as we go
70
- /*
71
- console.log('Status: ' + await conversion.getProgress() * 100 + '%, '
72
- + await conversion.getProgressLabel());
73
- */
74
- }
75
-
76
- if (await conversion.getConversionStatus() === PDFNet.DocumentConversion.Result.e_Success) {
77
- const num_warnings = await conversion.getNumWarnings();
78
-
79
- // print information about the conversion
80
- for (let i = 0; i < num_warnings; ++i) {
81
- console.log('Conversion Warning: ' + await conversion.getWarningString(i));
82
- }
83
-
84
- // save the result
85
- await pdfdoc.save(outputPath + outputFilename, PDFNet.SDFDoc.SaveOptions.e_linearized);
86
- // done
87
- console.log('Saved ' + outputFilename);
88
- }
89
- else {
90
- console.log('Encountered an error during conversion: '
91
- + await conversion.getErrorString());
92
- }
93
- }
94
-
95
-
96
- const main = async () => {
97
-
98
- PDFNet.addResourceSearchPath('../Resources');
99
-
100
- try {
101
- // first the one-line conversion function
102
- await simpleDocxConvert('Fishermen.docx', 'Fishermen.pdf');
103
-
104
- // then the more flexible line-by-line conversion API
105
- await flexibleDocxConvert('the_rime_of_the_ancient_mariner.docx',
106
- 'the_rime_of_the_ancient_mariner.pdf');
107
-
108
- // conversion of RTL content
109
- await flexibleDocxConvert('factsheet_Arabic.docx', 'factsheet_Arabic.pdf');
110
- } catch (err) {
111
- console.log(err);
112
- }
113
-
114
- console.log('Done.');
115
- };
116
-
117
- PDFNet.runWithCleanup(main, PDFTronLicense.Key).catch(function (error) {
118
- console.log('Error: ' + JSON.stringify(error));
119
- }).then(function () { return PDFNet.shutdown(); });
120
-
121
- };
122
- exports.runOfficeToPDF();
123
- })(exports);
124
- // eslint-disable-next-line spaced-comment
125
- //# sourceURL=OfficeToPDFTest.js
1
+ //---------------------------------------------------------------------------------------
2
+ // Copyright (c) 2001-2023 by PDFTron Systems Inc. All Rights Reserved.
3
+ // Consult legal.txt regarding legal and license information.
4
+ //---------------------------------------------------------------------------------------
5
+
6
+ //------------------------------------------------------------------------------
7
+ // The following sample illustrates how to use the PDF::Convert utility class
8
+ // to convert MS Office files to PDF
9
+ //
10
+ // This conversion is performed entirely within the PDFNet and has *no*
11
+ // external or system dependencies dependencies -- Conversion results will be
12
+ // the same whether on Windows, Linux or Android.
13
+ //
14
+ // Please contact us if you have any questions.
15
+ //------------------------------------------------------------------------------
16
+
17
+ const { PDFNet } = require('@pdftron/pdfnet-node');
18
+ const PDFTronLicense = require('../LicenseKey/LicenseKey');
19
+
20
+ ((exports) => {
21
+ 'use strict';
22
+
23
+ exports.runOfficeToPDF = () => {
24
+
25
+ const inputPath = '../TestFiles/';
26
+ const outputPath = inputPath + 'Output/';
27
+
28
+ const simpleDocxConvert = async (inputFilename, outputFilename) => {
29
+ // perform the conversion with no optional parameters
30
+ const pdfdoc = await PDFNet.Convert.officeToPdfWithPath(inputPath + inputFilename);
31
+
32
+ // save the result
33
+ await pdfdoc.save(outputPath + outputFilename, PDFNet.SDFDoc.SaveOptions.e_linearized);
34
+
35
+ // And we're done!
36
+ console.log('Saved ' + outputFilename);
37
+ }
38
+
39
+ const flexibleDocxConvert = async (inputFilename, outputFilename) => {
40
+ // Start with a PDFDoc (the conversion destination)
41
+ const pdfdoc = await PDFNet.PDFDoc.create();
42
+ pdfdoc.initSecurityHandler();
43
+
44
+ const options = new PDFNet.Convert.OfficeToPDFOptions();
45
+
46
+ // set up smart font substitutions to improve conversion results
47
+ // in situations where the original fonts are not available
48
+ options.setSmartSubstitutionPluginPath(inputPath);
49
+
50
+ // create a conversion object -- this sets things up but does not yet
51
+ // perform any conversion logic.
52
+ // in a multithreaded environment, this object can be used to monitor
53
+ // the conversion progress and potentially cancel it as well
54
+ const conversion = await PDFNet.Convert.streamingPdfConversionWithPdfAndPath(
55
+ pdfdoc, inputPath + inputFilename, options);
56
+
57
+ // Print the progress of the conversion.
58
+ /*
59
+ console.log('Status: ' + await conversion.getProgress() * 100 + '%, '
60
+ + await conversion.getProgressLabel());
61
+ */
62
+
63
+ // actually perform the conversion
64
+ // this particular method will not throw on conversion failure, but will
65
+ // return an error status instead
66
+
67
+ while (await conversion.getConversionStatus() === PDFNet.DocumentConversion.Result.e_Incomplete) {
68
+ await conversion.convertNextPage();
69
+ // print out the progress status as we go
70
+ /*
71
+ console.log('Status: ' + await conversion.getProgress() * 100 + '%, '
72
+ + await conversion.getProgressLabel());
73
+ */
74
+ }
75
+
76
+ if (await conversion.getConversionStatus() === PDFNet.DocumentConversion.Result.e_Success) {
77
+ const num_warnings = await conversion.getNumWarnings();
78
+
79
+ // print information about the conversion
80
+ for (let i = 0; i < num_warnings; ++i) {
81
+ console.log('Conversion Warning: ' + await conversion.getWarningString(i));
82
+ }
83
+
84
+ // save the result
85
+ await pdfdoc.save(outputPath + outputFilename, PDFNet.SDFDoc.SaveOptions.e_linearized);
86
+ // done
87
+ console.log('Saved ' + outputFilename);
88
+ }
89
+ else {
90
+ console.log('Encountered an error during conversion: '
91
+ + await conversion.getErrorString());
92
+ }
93
+ }
94
+
95
+
96
+ const main = async () => {
97
+
98
+ PDFNet.addResourceSearchPath('../Resources');
99
+
100
+ try {
101
+ // first the one-line conversion function
102
+ await simpleDocxConvert('Fishermen.docx', 'Fishermen.pdf');
103
+
104
+ // then the more flexible line-by-line conversion API
105
+ await flexibleDocxConvert('the_rime_of_the_ancient_mariner.docx',
106
+ 'the_rime_of_the_ancient_mariner.pdf');
107
+
108
+ // conversion of RTL content
109
+ await flexibleDocxConvert('factsheet_Arabic.docx', 'factsheet_Arabic.pdf');
110
+ } catch (err) {
111
+ console.log(err);
112
+ }
113
+
114
+ console.log('Done.');
115
+ };
116
+
117
+ PDFNet.runWithCleanup(main, PDFTronLicense.Key).catch(function (error) {
118
+ console.log('Error: ' + JSON.stringify(error));
119
+ }).then(function () { return PDFNet.shutdown(); });
120
+
121
+ };
122
+ exports.runOfficeToPDF();
123
+ })(exports);
124
+ // eslint-disable-next-line spaced-comment
125
+ //# sourceURL=OfficeToPDFTest.js