pdfmake 0.2.4 → 0.3.0-beta.2

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 (128) hide show
  1. package/CHANGELOG.md +10 -27
  2. package/README.md +11 -7
  3. package/build/pdfmake.js +44733 -42435
  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/fonts/Roboto/Roboto-Italic.ttf +0 -0
  15. package/fonts/Roboto/Roboto-Medium.ttf +0 -0
  16. package/fonts/Roboto/Roboto-MediumItalic.ttf +0 -0
  17. package/fonts/Roboto/Roboto-Regular.ttf +0 -0
  18. package/fonts/Roboto.js +8 -0
  19. package/js/3rd-party/svg-to-pdfkit/source.js +4301 -0
  20. package/js/3rd-party/svg-to-pdfkit.js +11 -0
  21. package/js/DocMeasure.js +758 -0
  22. package/js/DocPreprocessor.js +291 -0
  23. package/js/DocumentContext.js +306 -0
  24. package/js/ElementWriter.js +400 -0
  25. package/js/LayoutBuilder.js +840 -0
  26. package/js/Line.js +125 -0
  27. package/js/OutputDocument.js +86 -0
  28. package/js/OutputDocumentServer.js +34 -0
  29. package/js/PDFDocument.js +190 -0
  30. package/js/PageElementWriter.js +165 -0
  31. package/js/PageSize.js +88 -0
  32. package/js/Printer.js +300 -0
  33. package/js/Renderer.js +463 -0
  34. package/js/SVGMeasure.js +89 -0
  35. package/js/StyleContextStack.js +206 -0
  36. package/js/TableProcessor.js +590 -0
  37. package/js/TextBreaker.js +182 -0
  38. package/js/TextDecorator.js +181 -0
  39. package/js/TextInlines.js +248 -0
  40. package/js/URLResolver.js +82 -0
  41. package/js/base.js +69 -0
  42. package/js/browser-extensions/OutputDocumentBrowser.js +131 -0
  43. package/js/browser-extensions/URLBrowserResolver.js +94 -0
  44. package/js/browser-extensions/fonts/Roboto.js +42 -0
  45. package/js/browser-extensions/index.js +70 -0
  46. package/js/browser-extensions/pdfMake.js +17 -0
  47. package/js/browser-extensions/standard-fonts/Courier.js +42 -0
  48. package/js/browser-extensions/standard-fonts/Helvetica.js +42 -0
  49. package/js/browser-extensions/standard-fonts/Symbol.js +27 -0
  50. package/js/browser-extensions/standard-fonts/Times.js +42 -0
  51. package/js/browser-extensions/standard-fonts/ZapfDingbats.js +27 -0
  52. package/js/browser-extensions/virtual-fs-cjs.js +3 -0
  53. package/js/columnCalculator.js +142 -0
  54. package/js/helpers/node.js +122 -0
  55. package/js/helpers/tools.js +48 -0
  56. package/js/helpers/variableType.js +52 -0
  57. package/js/index.js +21 -0
  58. package/js/qrEnc.js +810 -0
  59. package/js/standardPageSizes.js +57 -0
  60. package/js/tableLayouts.js +127 -0
  61. package/js/virtual-fs.js +77 -0
  62. package/package.json +26 -22
  63. package/src/3rd-party/svg-to-pdfkit.js +2 -2
  64. package/src/DocMeasure.js +703 -0
  65. package/src/DocPreprocessor.js +264 -0
  66. package/src/DocumentContext.js +309 -0
  67. package/src/ElementWriter.js +394 -0
  68. package/src/LayoutBuilder.js +821 -0
  69. package/src/Line.js +114 -0
  70. package/src/OutputDocument.js +78 -0
  71. package/src/OutputDocumentServer.js +26 -0
  72. package/src/PDFDocument.js +174 -0
  73. package/src/PageElementWriter.js +160 -0
  74. package/src/PageSize.js +53 -0
  75. package/src/Printer.js +277 -0
  76. package/src/Renderer.js +405 -0
  77. package/src/SVGMeasure.js +79 -0
  78. package/src/StyleContextStack.js +216 -0
  79. package/src/TableProcessor.js +558 -0
  80. package/src/TextBreaker.js +149 -0
  81. package/src/TextDecorator.js +161 -0
  82. package/src/TextInlines.js +223 -0
  83. package/src/URLResolver.js +72 -0
  84. package/src/base.js +61 -0
  85. package/src/browser-extensions/OutputDocumentBrowser.js +117 -0
  86. package/src/browser-extensions/URLBrowserResolver.js +49 -53
  87. package/src/browser-extensions/fonts/Roboto.js +27 -0
  88. package/src/browser-extensions/index.js +55 -0
  89. package/src/browser-extensions/pdfMake.js +10 -282
  90. package/src/browser-extensions/standard-fonts/Courier.js +27 -0
  91. package/src/browser-extensions/standard-fonts/Helvetica.js +27 -0
  92. package/src/browser-extensions/standard-fonts/Symbol.js +21 -0
  93. package/src/browser-extensions/standard-fonts/Times.js +27 -0
  94. package/src/browser-extensions/standard-fonts/ZapfDingbats.js +21 -0
  95. package/src/browser-extensions/virtual-fs-cjs.js +1 -0
  96. package/src/columnCalculator.js +29 -32
  97. package/src/helpers/node.js +110 -0
  98. package/src/helpers/tools.js +39 -0
  99. package/src/helpers/variableType.js +39 -0
  100. package/src/index.js +16 -0
  101. package/src/qrEnc.js +15 -10
  102. package/src/standardPageSizes.js +1 -3
  103. package/src/tableLayouts.js +100 -0
  104. package/src/virtual-fs.js +66 -0
  105. package/standard-fonts/Courier.js +8 -0
  106. package/standard-fonts/Helvetica.js +9 -0
  107. package/standard-fonts/Symbol.js +5 -0
  108. package/standard-fonts/Times.js +8 -0
  109. package/standard-fonts/ZapfDingbats.js +5 -0
  110. package/src/browser-extensions/virtual-fs.js +0 -55
  111. package/src/docMeasure.js +0 -807
  112. package/src/docPreprocessor.js +0 -255
  113. package/src/documentContext.js +0 -314
  114. package/src/elementWriter.js +0 -322
  115. package/src/fontProvider.js +0 -68
  116. package/src/helpers.js +0 -126
  117. package/src/imageMeasure.js +0 -51
  118. package/src/layoutBuilder.js +0 -807
  119. package/src/line.js +0 -91
  120. package/src/pageElementWriter.js +0 -174
  121. package/src/pdfKitEngine.js +0 -21
  122. package/src/printer.js +0 -705
  123. package/src/styleContextStack.js +0 -179
  124. package/src/svgMeasure.js +0 -70
  125. package/src/tableProcessor.js +0 -561
  126. package/src/textDecorator.js +0 -157
  127. package/src/textTools.js +0 -373
  128. package/src/traversalTracker.js +0 -47
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+ var _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
+ };
57
+ exports.default = _default;
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.tableLayouts = exports.defaultTableLayout = void 0;
5
+
6
+ /*eslint no-unused-vars: ["error", {"args": "none"}]*/
7
+ const tableLayouts = {
8
+ noBorders: {
9
+ hLineWidth(i) {
10
+ return 0;
11
+ },
12
+
13
+ vLineWidth(i) {
14
+ return 0;
15
+ },
16
+
17
+ paddingLeft(i) {
18
+ return i && 4 || 0;
19
+ },
20
+
21
+ paddingRight(i, node) {
22
+ return i < node.table.widths.length - 1 ? 4 : 0;
23
+ }
24
+
25
+ },
26
+ headerLineOnly: {
27
+ hLineWidth(i, node) {
28
+ if (i === 0 || i === node.table.body.length) {
29
+ return 0;
30
+ }
31
+
32
+ return i === node.table.headerRows ? 2 : 0;
33
+ },
34
+
35
+ vLineWidth(i) {
36
+ return 0;
37
+ },
38
+
39
+ paddingLeft(i) {
40
+ return i === 0 ? 0 : 8;
41
+ },
42
+
43
+ paddingRight(i, node) {
44
+ return i === node.table.widths.length - 1 ? 0 : 8;
45
+ }
46
+
47
+ },
48
+ lightHorizontalLines: {
49
+ hLineWidth(i, node) {
50
+ if (i === 0 || i === node.table.body.length) {
51
+ return 0;
52
+ }
53
+
54
+ return i === node.table.headerRows ? 2 : 1;
55
+ },
56
+
57
+ vLineWidth(i) {
58
+ return 0;
59
+ },
60
+
61
+ hLineColor(i) {
62
+ return i === 1 ? 'black' : '#aaa';
63
+ },
64
+
65
+ paddingLeft(i) {
66
+ return i === 0 ? 0 : 8;
67
+ },
68
+
69
+ paddingRight(i, node) {
70
+ return i === node.table.widths.length - 1 ? 0 : 8;
71
+ }
72
+
73
+ }
74
+ };
75
+ exports.tableLayouts = tableLayouts;
76
+ const defaultTableLayout = {
77
+ hLineWidth(i, node) {
78
+ return 1;
79
+ },
80
+
81
+ vLineWidth(i, node) {
82
+ return 1;
83
+ },
84
+
85
+ hLineColor(i, node) {
86
+ return 'black';
87
+ },
88
+
89
+ vLineColor(i, node) {
90
+ return 'black';
91
+ },
92
+
93
+ hLineStyle(i, node) {
94
+ return null;
95
+ },
96
+
97
+ vLineStyle(i, node) {
98
+ return null;
99
+ },
100
+
101
+ paddingLeft(i, node) {
102
+ return 4;
103
+ },
104
+
105
+ paddingRight(i, node) {
106
+ return 4;
107
+ },
108
+
109
+ paddingTop(i, node) {
110
+ return 2;
111
+ },
112
+
113
+ paddingBottom(i, node) {
114
+ return 2;
115
+ },
116
+
117
+ fillColor(i, node) {
118
+ return null;
119
+ },
120
+
121
+ fillOpacity(i, node) {
122
+ return 1;
123
+ },
124
+
125
+ defaultBorder: true
126
+ };
127
+ exports.defaultTableLayout = defaultTableLayout;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+
6
+ const normalizeFilename = filename => {
7
+ if (filename.indexOf(__dirname) === 0) {
8
+ filename = filename.substring(__dirname.length);
9
+ }
10
+
11
+ if (filename.indexOf('/') === 0) {
12
+ filename = filename.substring(1);
13
+ }
14
+
15
+ return filename;
16
+ };
17
+
18
+ class VirtualFileSystem {
19
+ constructor() {
20
+ this.storage = {};
21
+ }
22
+ /**
23
+ * @param {string} filename
24
+ * @returns {boolean}
25
+ */
26
+
27
+
28
+ existsSync(filename) {
29
+ const normalizedFilename = normalizeFilename(filename);
30
+ return typeof this.storage[normalizedFilename] !== 'undefined';
31
+ }
32
+ /**
33
+ * @param {string} filename
34
+ * @param {?string|?object} options
35
+ * @returns {string|Buffer}
36
+ */
37
+
38
+
39
+ readFileSync(filename, options) {
40
+ const normalizedFilename = normalizeFilename(filename);
41
+ const encoding = typeof options === 'object' ? options.encoding : options;
42
+
43
+ if (!this.existsSync(normalizedFilename)) {
44
+ throw new Error(`File '${normalizedFilename}' not found in virtual file system`);
45
+ }
46
+
47
+ const buffer = this.storage[normalizedFilename];
48
+
49
+ if (encoding) {
50
+ return buffer.toString(encoding);
51
+ }
52
+
53
+ return buffer;
54
+ }
55
+ /**
56
+ * @param {string} filename
57
+ * @param {string|Buffer} content
58
+ * @param {?string|?object} options
59
+ */
60
+
61
+
62
+ writeFileSync(filename, content, options) {
63
+ const normalizedFilename = normalizeFilename(filename);
64
+ const encoding = typeof options === 'object' ? options.encoding : options;
65
+
66
+ if (!content && !options) {
67
+ throw new Error('No content');
68
+ }
69
+
70
+ this.storage[normalizedFilename] = encoding || typeof content === 'string' ? new Buffer(content, encoding) : content;
71
+ }
72
+
73
+ }
74
+
75
+ var _default = new VirtualFileSystem();
76
+
77
+ exports.default = _default;
package/package.json CHANGED
@@ -1,8 +1,9 @@
1
1
  {
2
2
  "name": "pdfmake",
3
- "version": "0.2.4",
3
+ "version": "0.3.0-beta.2",
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"
@@ -14,48 +15,51 @@
14
15
  "xmldoc": "^1.1.2"
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",
18
+ "@babel/cli": "^7.16.7",
19
+ "@babel/core": "^7.16.7",
20
+ "@babel/plugin-transform-modules-commonjs": "^7.16.7",
21
+ "@babel/preset-env": "^7.16.7",
21
22
  "assert": "^2.0.0",
22
- "babel-loader": "^8.2.2",
23
+ "babel-loader": "^8.2.3",
23
24
  "brfs": "^2.0.2",
24
25
  "browserify-zlib": "^0.2.0",
25
- "buffer": "^6.0.3",
26
+ "buffer": "6.0.3",
26
27
  "core-js": "3.19.0",
27
- "eslint": "^7.29.0",
28
- "eslint-plugin-jsdoc": "^35.4.1",
29
- "expose-loader": "^3.0.0",
28
+ "eslint": "^8.5.0",
29
+ "eslint-plugin-jsdoc": "^37.4.2",
30
+ "expose-loader": "^3.1.0",
30
31
  "file-saver": "^2.0.5",
31
- "mocha": "^9.0.1",
32
+ "mocha": "^9.1.3",
32
33
  "npm-run-all": "^4.1.5",
33
34
  "process": "^0.11.10",
34
- "rewire": "^5.0.0",
35
+ "rewire": "^6.0.0",
35
36
  "shx": "^0.3.3",
36
- "sinon": "^11.1.1",
37
+ "sinon": "^12.0.1",
37
38
  "stream-browserify": "^3.0.0",
38
39
  "string-replace-webpack-plugin": "^0.1.3",
39
40
  "svg-to-pdfkit": "^0.1.8",
40
- "terser-webpack-plugin": "^5.1.4",
41
+ "terser-webpack-plugin": "^5.3.0",
41
42
  "transform-loader": "^0.2.4",
42
43
  "util": "^0.12.4",
43
- "webpack": "^5.42.0",
44
- "webpack-cli": "^4.7.2"
44
+ "webpack": "^5.65.0",
45
+ "webpack-cli": "^4.9.1"
45
46
  },
46
47
  "engines": {
47
48
  "node": ">=12"
48
49
  },
49
50
  "scripts": {
50
- "test": "run-s build mocha",
51
- "build": "run-s build:3rdparty build:browser",
51
+ "test": "run-s build mocha lint",
52
+ "build": "run-s build:clean build:3rdparty build:node build:browser build:standard-fonts build:fonts build:vfs",
53
+ "build:clean": "shx rm -rf js build",
52
54
  "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",
55
+ "build:node": "babel src --out-dir js",
53
56
  "build:browser": "webpack",
54
- "build:browser-standard-fonts": "webpack --config webpack-standardfonts.config.js",
55
57
  "build:vfs": "node build-vfs.js \"./examples/fonts\"",
56
58
  "build:examples": "node build-examples.js",
57
- "lint": "eslint \"./src/**/*.js\" \"./tests/**/*.js\" \"./examples/**/*.js\"",
58
- "mocha": "mocha --reporter spec \"./tests/**/*.js\"",
59
+ "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",
60
+ "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",
61
+ "lint": "eslint \"./src/**/*.js\" \"./tests/**/*.js\" \"./examples/**/*.js\" \"./standard-fonts/**/*.js\" \"./fonts/**/*.js\"",
62
+ "mocha": "mocha --reporter spec \"./tests/**/*.spec.js\"",
59
63
  "playground": "node dev-playground/server.js"
60
64
  },
61
65
  "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;