pdfmake 0.2.13 → 0.3.0-beta.10

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 (136) hide show
  1. package/CHANGELOG.md +23 -41
  2. package/README.md +11 -7
  3. package/build/pdfmake.js +22291 -23202
  4. package/build/pdfmake.js.map +1 -1
  5. package/build/pdfmake.min.js +2 -2
  6. package/build/pdfmake.min.js.map +1 -1
  7. package/build/standard-fonts/Courier.js +27 -0
  8. package/build/standard-fonts/Helvetica.js +27 -0
  9. package/build/standard-fonts/Symbol.js +21 -0
  10. package/build/standard-fonts/Times.js +27 -0
  11. package/build/standard-fonts/ZapfDingbats.js +21 -0
  12. package/build/vfs_fonts.js +2 -2
  13. package/build-vfs.js +2 -2
  14. package/eslint.config.mjs +52 -0
  15. package/fonts/Roboto/Roboto-Italic.ttf +0 -0
  16. package/fonts/Roboto/Roboto-Medium.ttf +0 -0
  17. package/fonts/Roboto/Roboto-MediumItalic.ttf +0 -0
  18. package/fonts/Roboto/Roboto-Regular.ttf +0 -0
  19. package/fonts/Roboto.js +8 -0
  20. package/js/3rd-party/svg-to-pdfkit/source.js +3626 -0
  21. package/js/3rd-party/svg-to-pdfkit.js +7 -0
  22. package/js/DocMeasure.js +626 -0
  23. package/js/DocPreprocessor.js +238 -0
  24. package/js/DocumentContext.js +288 -0
  25. package/js/ElementWriter.js +342 -0
  26. package/js/LayoutBuilder.js +881 -0
  27. package/js/Line.js +105 -0
  28. package/js/OutputDocument.js +76 -0
  29. package/js/OutputDocumentServer.js +27 -0
  30. package/js/PDFDocument.js +144 -0
  31. package/js/PageElementWriter.js +140 -0
  32. package/js/PageSize.js +74 -0
  33. package/js/Printer.js +291 -0
  34. package/js/Renderer.js +375 -0
  35. package/js/SVGMeasure.js +69 -0
  36. package/js/StyleContextStack.js +164 -0
  37. package/js/TableProcessor.js +524 -0
  38. package/js/TextBreaker.js +139 -0
  39. package/js/TextDecorator.js +143 -0
  40. package/js/TextInlines.js +206 -0
  41. package/js/URLResolver.js +73 -0
  42. package/js/base.js +52 -0
  43. package/js/browser-extensions/OutputDocumentBrowser.js +118 -0
  44. package/js/browser-extensions/URLBrowserResolver.js +76 -0
  45. package/js/browser-extensions/fonts/Roboto.js +38 -0
  46. package/js/browser-extensions/index.js +53 -0
  47. package/js/browser-extensions/pdfMake.js +3 -0
  48. package/js/browser-extensions/standard-fonts/Courier.js +38 -0
  49. package/js/browser-extensions/standard-fonts/Helvetica.js +38 -0
  50. package/js/browser-extensions/standard-fonts/Symbol.js +23 -0
  51. package/js/browser-extensions/standard-fonts/Times.js +38 -0
  52. package/js/browser-extensions/standard-fonts/ZapfDingbats.js +23 -0
  53. package/js/browser-extensions/virtual-fs-cjs.js +3 -0
  54. package/js/columnCalculator.js +148 -0
  55. package/js/helpers/node.js +98 -0
  56. package/js/helpers/tools.js +40 -0
  57. package/js/helpers/variableType.js +59 -0
  58. package/js/index.js +15 -0
  59. package/js/qrEnc.js +721 -0
  60. package/js/standardPageSizes.js +56 -0
  61. package/js/tableLayouts.js +98 -0
  62. package/js/virtual-fs.js +60 -0
  63. package/package.json +34 -28
  64. package/src/3rd-party/svg-to-pdfkit.js +2 -2
  65. package/src/DocMeasure.js +707 -0
  66. package/src/DocPreprocessor.js +264 -0
  67. package/src/DocumentContext.js +324 -0
  68. package/src/ElementWriter.js +405 -0
  69. package/src/LayoutBuilder.js +997 -0
  70. package/src/Line.js +114 -0
  71. package/src/OutputDocument.js +78 -0
  72. package/src/OutputDocumentServer.js +26 -0
  73. package/src/PDFDocument.js +174 -0
  74. package/src/PageElementWriter.js +160 -0
  75. package/src/PageSize.js +53 -0
  76. package/src/Printer.js +306 -0
  77. package/src/Renderer.js +405 -0
  78. package/src/SVGMeasure.js +79 -0
  79. package/src/StyleContextStack.js +175 -0
  80. package/src/TableProcessor.js +580 -0
  81. package/src/TextBreaker.js +149 -0
  82. package/src/TextDecorator.js +161 -0
  83. package/src/TextInlines.js +223 -0
  84. package/src/URLResolver.js +77 -0
  85. package/src/base.js +61 -0
  86. package/src/browser-extensions/OutputDocumentBrowser.js +117 -0
  87. package/src/browser-extensions/URLBrowserResolver.js +45 -57
  88. package/src/browser-extensions/fonts/Roboto.js +27 -0
  89. package/src/browser-extensions/index.js +55 -0
  90. package/src/browser-extensions/pdfMake.js +1 -329
  91. package/src/browser-extensions/standard-fonts/Courier.js +27 -0
  92. package/src/browser-extensions/standard-fonts/Helvetica.js +27 -0
  93. package/src/browser-extensions/standard-fonts/Symbol.js +21 -0
  94. package/src/browser-extensions/standard-fonts/Times.js +27 -0
  95. package/src/browser-extensions/standard-fonts/ZapfDingbats.js +21 -0
  96. package/src/browser-extensions/virtual-fs-cjs.js +1 -0
  97. package/src/columnCalculator.js +35 -38
  98. package/src/helpers/node.js +110 -0
  99. package/src/helpers/tools.js +39 -0
  100. package/src/helpers/variableType.js +50 -0
  101. package/src/index.js +16 -0
  102. package/src/qrEnc.js +15 -10
  103. package/src/standardPageSizes.js +1 -3
  104. package/src/tableLayouts.js +100 -0
  105. package/src/virtual-fs.js +66 -0
  106. package/standard-fonts/Courier.js +8 -0
  107. package/standard-fonts/Helvetica.js +9 -0
  108. package/standard-fonts/Symbol.js +5 -0
  109. package/standard-fonts/Times.js +8 -0
  110. package/standard-fonts/ZapfDingbats.js +5 -0
  111. package/.idea/codeStyles/Project.xml +0 -7
  112. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  113. package/.idea/inspectionProfiles/Project_Default.xml +0 -6
  114. package/.idea/misc.xml +0 -6
  115. package/.idea/modules.xml +0 -8
  116. package/.idea/pdfmake.iml +0 -11
  117. package/.idea/vcs.xml +0 -6
  118. package/src/browser-extensions/virtual-fs.js +0 -55
  119. package/src/docMeasure.js +0 -810
  120. package/src/docPreprocessor.js +0 -255
  121. package/src/documentContext.js +0 -328
  122. package/src/elementWriter.js +0 -333
  123. package/src/fontProvider.js +0 -68
  124. package/src/helpers.js +0 -138
  125. package/src/imageMeasure.js +0 -55
  126. package/src/layoutBuilder.js +0 -989
  127. package/src/line.js +0 -91
  128. package/src/pageElementWriter.js +0 -174
  129. package/src/pdfKitEngine.js +0 -21
  130. package/src/printer.js +0 -710
  131. package/src/styleContextStack.js +0 -138
  132. package/src/svgMeasure.js +0 -70
  133. package/src/tableProcessor.js +0 -584
  134. package/src/textDecorator.js +0 -157
  135. package/src/textTools.js +0 -373
  136. package/src/traversalTracker.js +0 -47
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+ var _default = exports.default = {
6
+ '4A0': [4767.87, 6740.79],
7
+ '2A0': [3370.39, 4767.87],
8
+ A0: [2383.94, 3370.39],
9
+ A1: [1683.78, 2383.94],
10
+ A2: [1190.55, 1683.78],
11
+ A3: [841.89, 1190.55],
12
+ A4: [595.28, 841.89],
13
+ A5: [419.53, 595.28],
14
+ A6: [297.64, 419.53],
15
+ A7: [209.76, 297.64],
16
+ A8: [147.40, 209.76],
17
+ A9: [104.88, 147.40],
18
+ A10: [73.70, 104.88],
19
+ B0: [2834.65, 4008.19],
20
+ B1: [2004.09, 2834.65],
21
+ B2: [1417.32, 2004.09],
22
+ B3: [1000.63, 1417.32],
23
+ B4: [708.66, 1000.63],
24
+ B5: [498.90, 708.66],
25
+ B6: [354.33, 498.90],
26
+ B7: [249.45, 354.33],
27
+ B8: [175.75, 249.45],
28
+ B9: [124.72, 175.75],
29
+ B10: [87.87, 124.72],
30
+ C0: [2599.37, 3676.54],
31
+ C1: [1836.85, 2599.37],
32
+ C2: [1298.27, 1836.85],
33
+ C3: [918.43, 1298.27],
34
+ C4: [649.13, 918.43],
35
+ C5: [459.21, 649.13],
36
+ C6: [323.15, 459.21],
37
+ C7: [229.61, 323.15],
38
+ C8: [161.57, 229.61],
39
+ C9: [113.39, 161.57],
40
+ C10: [79.37, 113.39],
41
+ RA0: [2437.80, 3458.27],
42
+ RA1: [1729.13, 2437.80],
43
+ RA2: [1218.90, 1729.13],
44
+ RA3: [864.57, 1218.90],
45
+ RA4: [609.45, 864.57],
46
+ SRA0: [2551.18, 3628.35],
47
+ SRA1: [1814.17, 2551.18],
48
+ SRA2: [1275.59, 1814.17],
49
+ SRA3: [907.09, 1275.59],
50
+ SRA4: [637.80, 907.09],
51
+ EXECUTIVE: [521.86, 756.00],
52
+ FOLIO: [612.00, 936.00],
53
+ LEGAL: [612.00, 1008.00],
54
+ LETTER: [612.00, 792.00],
55
+ TABLOID: [792.00, 1224.00]
56
+ };
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.tableLayouts = exports.defaultTableLayout = void 0;
5
+ /*eslint no-unused-vars: ["error", {"args": "none"}]*/
6
+
7
+ const tableLayouts = exports.tableLayouts = {
8
+ noBorders: {
9
+ hLineWidth(i) {
10
+ return 0;
11
+ },
12
+ vLineWidth(i) {
13
+ return 0;
14
+ },
15
+ paddingLeft(i) {
16
+ return i && 4 || 0;
17
+ },
18
+ paddingRight(i, node) {
19
+ return i < node.table.widths.length - 1 ? 4 : 0;
20
+ }
21
+ },
22
+ headerLineOnly: {
23
+ hLineWidth(i, node) {
24
+ if (i === 0 || i === node.table.body.length) {
25
+ return 0;
26
+ }
27
+ return i === node.table.headerRows ? 2 : 0;
28
+ },
29
+ vLineWidth(i) {
30
+ return 0;
31
+ },
32
+ paddingLeft(i) {
33
+ return i === 0 ? 0 : 8;
34
+ },
35
+ paddingRight(i, node) {
36
+ return i === node.table.widths.length - 1 ? 0 : 8;
37
+ }
38
+ },
39
+ lightHorizontalLines: {
40
+ hLineWidth(i, node) {
41
+ if (i === 0 || i === node.table.body.length) {
42
+ return 0;
43
+ }
44
+ return i === node.table.headerRows ? 2 : 1;
45
+ },
46
+ vLineWidth(i) {
47
+ return 0;
48
+ },
49
+ hLineColor(i) {
50
+ return i === 1 ? 'black' : '#aaa';
51
+ },
52
+ paddingLeft(i) {
53
+ return i === 0 ? 0 : 8;
54
+ },
55
+ paddingRight(i, node) {
56
+ return i === node.table.widths.length - 1 ? 0 : 8;
57
+ }
58
+ }
59
+ };
60
+ const defaultTableLayout = exports.defaultTableLayout = {
61
+ hLineWidth(i, node) {
62
+ return 1;
63
+ },
64
+ vLineWidth(i, node) {
65
+ return 1;
66
+ },
67
+ hLineColor(i, node) {
68
+ return 'black';
69
+ },
70
+ vLineColor(i, node) {
71
+ return 'black';
72
+ },
73
+ hLineStyle(i, node) {
74
+ return null;
75
+ },
76
+ vLineStyle(i, node) {
77
+ return null;
78
+ },
79
+ paddingLeft(i, node) {
80
+ return 4;
81
+ },
82
+ paddingRight(i, node) {
83
+ return 4;
84
+ },
85
+ paddingTop(i, node) {
86
+ return 2;
87
+ },
88
+ paddingBottom(i, node) {
89
+ return 2;
90
+ },
91
+ fillColor(i, node) {
92
+ return null;
93
+ },
94
+ fillOpacity(i, node) {
95
+ return 1;
96
+ },
97
+ defaultBorder: true
98
+ };
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+ const normalizeFilename = filename => {
6
+ if (filename.indexOf(__dirname) === 0) {
7
+ filename = filename.substring(__dirname.length);
8
+ }
9
+ if (filename.indexOf('/') === 0) {
10
+ filename = filename.substring(1);
11
+ }
12
+ return filename;
13
+ };
14
+ class VirtualFileSystem {
15
+ constructor() {
16
+ this.storage = {};
17
+ }
18
+
19
+ /**
20
+ * @param {string} filename
21
+ * @returns {boolean}
22
+ */
23
+ existsSync(filename) {
24
+ const normalizedFilename = normalizeFilename(filename);
25
+ return typeof this.storage[normalizedFilename] !== 'undefined';
26
+ }
27
+
28
+ /**
29
+ * @param {string} filename
30
+ * @param {?string|?object} options
31
+ * @returns {string|Buffer}
32
+ */
33
+ readFileSync(filename, options) {
34
+ const normalizedFilename = normalizeFilename(filename);
35
+ const encoding = typeof options === 'object' ? options.encoding : options;
36
+ if (!this.existsSync(normalizedFilename)) {
37
+ throw new Error(`File '${normalizedFilename}' not found in virtual file system`);
38
+ }
39
+ const buffer = this.storage[normalizedFilename];
40
+ if (encoding) {
41
+ return buffer.toString(encoding);
42
+ }
43
+ return buffer;
44
+ }
45
+
46
+ /**
47
+ * @param {string} filename
48
+ * @param {string|Buffer} content
49
+ * @param {?string|?object} options
50
+ */
51
+ writeFileSync(filename, content, options) {
52
+ const normalizedFilename = normalizeFilename(filename);
53
+ const encoding = typeof options === 'object' ? options.encoding : options;
54
+ if (!content && !options) {
55
+ throw new Error('No content');
56
+ }
57
+ this.storage[normalizedFilename] = encoding || typeof content === 'string' ? new Buffer(content, encoding) : content;
58
+ }
59
+ }
60
+ var _default = exports.default = new VirtualFileSystem();
package/package.json CHANGED
@@ -1,62 +1,68 @@
1
1
  {
2
2
  "name": "pdfmake",
3
- "version": "0.2.13",
3
+ "version": "0.3.0-beta.10",
4
4
  "description": "Client/server side PDF printing in pure JavaScript",
5
- "main": "src/printer.js",
5
+ "main": "js/index.js",
6
+ "esnext": "src/index.js",
6
7
  "browser": "build/pdfmake.js",
7
8
  "directories": {
8
9
  "test": "tests"
9
10
  },
10
11
  "dependencies": {
11
- "@foliojs-fork/linebreak": "^1.1.1",
12
+ "@foliojs-fork/linebreak": "^1.1.2",
12
13
  "@foliojs-fork/pdfkit": "^0.14.0",
13
14
  "iconv-lite": "^0.6.3",
14
- "xmldoc": "^1.1.2"
15
+ "xmldoc": "^1.3.0"
15
16
  },
16
17
  "devDependencies": {
17
- "@babel/cli": "^7.14.5",
18
- "@babel/core": "^7.14.6",
19
- "@babel/plugin-transform-modules-commonjs": "^7.14.5",
20
- "@babel/preset-env": "^7.14.7",
21
- "assert": "^2.0.0",
22
- "babel-loader": "^8.2.2",
18
+ "@babel/cli": "^7.25.6",
19
+ "@babel/core": "^7.25.2",
20
+ "@babel/plugin-transform-modules-commonjs": "^7.24.8",
21
+ "@babel/preset-env": "^7.25.4",
22
+ "@eslint/js": "^9.9.1",
23
+ "assert": "^2.1.0",
24
+ "babel-loader": "^9.1.3",
23
25
  "brfs": "^2.0.2",
24
26
  "browserify-zlib": "^0.2.0",
25
- "buffer": "^6.0.3",
27
+ "buffer": "6.0.3",
26
28
  "core-js": "3.19.0",
27
- "eslint": "^7.29.0",
28
- "eslint-plugin-jsdoc": "^35.4.1",
29
- "expose-loader": "^3.0.0",
29
+ "eslint": "^9.9.1",
30
+ "eslint-plugin-jsdoc": "^50.2.2",
31
+ "expose-loader": "^5.0.0",
30
32
  "file-saver": "^2.0.5",
31
- "mocha": "^9.0.1",
33
+ "globals": "^15.9.0",
34
+ "mocha": "^10.7.3",
32
35
  "npm-run-all": "^4.1.5",
33
36
  "process": "^0.11.10",
34
- "rewire": "^5.0.0",
35
- "shx": "^0.3.3",
36
- "sinon": "^11.1.1",
37
- "source-map-loader": "^4.0.1",
37
+ "rewire": "^7.0.0",
38
+ "shx": "^0.3.4",
39
+ "sinon": "^18.0.0",
40
+ "source-map-loader": "^5.0.0",
38
41
  "stream-browserify": "^3.0.0",
39
42
  "string-replace-webpack-plugin": "^0.1.3",
40
43
  "svg-to-pdfkit": "^0.1.8",
41
- "terser-webpack-plugin": "^5.1.4",
44
+ "terser-webpack-plugin": "^5.3.10",
42
45
  "transform-loader": "^0.2.4",
43
- "util": "^0.12.4",
44
- "webpack": "^5.42.0",
45
- "webpack-cli": "^4.7.2"
46
+ "util": "^0.12.5",
47
+ "webpack": "^5.94.0",
48
+ "webpack-cli": "^5.1.4"
46
49
  },
47
50
  "engines": {
48
51
  "node": ">=18"
49
52
  },
50
53
  "scripts": {
51
- "test": "run-s build mocha",
52
- "build": "run-s build:3rdparty build:browser",
54
+ "test": "run-s build mocha lint",
55
+ "build": "run-s build:clean build:3rdparty build:node build:browser build:standard-fonts build:fonts build:vfs",
56
+ "build:clean": "shx rm -rf js build",
53
57
  "build:3rdparty": "shx cp node_modules/svg-to-pdfkit/source.js src/3rd-party/svg-to-pdfkit/source.js && shx cp node_modules/svg-to-pdfkit/LICENSE src/3rd-party/svg-to-pdfkit/LICENSE",
58
+ "build:node": "babel src --out-dir js",
54
59
  "build:browser": "webpack",
55
- "build:browser-standard-fonts": "webpack --config webpack-standardfonts.config.js",
56
60
  "build:vfs": "node build-vfs.js \"./examples/fonts\"",
57
61
  "build:examples": "node build-examples.js",
58
- "lint": "eslint \"./src/**/*.js\" \"./tests/**/*.js\" \"./examples/**/*.js\"",
59
- "mocha": "mocha --reporter spec \"./tests/**/*.js\"",
62
+ "build:standard-fonts": "shx mkdir -p build/standard-fonts && brfs \"./src/browser-extensions/standard-fonts/Courier.js\" > build/standard-fonts/Courier.js && brfs \"./src/browser-extensions/standard-fonts/Helvetica.js\" > build/standard-fonts/Helvetica.js && brfs \"./src/browser-extensions/standard-fonts/Times.js\" > build/standard-fonts/Times.js && brfs \"./src/browser-extensions/standard-fonts/Symbol.js\" > build/standard-fonts/Symbol.js && brfs \"./src/browser-extensions/standard-fonts/ZapfDingbats.js\" > build/standard-fonts/ZapfDingbats.js",
63
+ "build:fonts": "shx mkdir -p build/fonts && shx mkdir -p build/fonts/Roboto && shx cp -r fonts/Roboto/*.* build/fonts/Roboto && brfs \"./src/browser-extensions/fonts/Roboto.js\" > build/fonts/Roboto.js",
64
+ "lint": "eslint \"./src/**/*.js\" \"./tests/**/*.js\" \"./examples/**/*.js\" \"./standard-fonts/**/*.js\" \"./fonts/**/*.js\"",
65
+ "mocha": "mocha --reporter spec \"./tests/**/*.spec.js\"",
60
66
  "playground": "node dev-playground/server.js"
61
67
  },
62
68
  "repository": {
@@ -1,3 +1,3 @@
1
- var SVGtoPDF = require('./svg-to-pdfkit/source.js');
1
+ import SVGtoPDF from './svg-to-pdfkit/source.js';
2
2
 
3
- module.exports = SVGtoPDF;
3
+ export default SVGtoPDF;