@flowaccount/pdfmake 1.0.4 → 1.0.5-staging.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.
- package/LICENSE +21 -21
- package/README.md +297 -297
- package/build/pdfmake.js +73798 -73315
- package/build/pdfmake.min.js +1 -1
- package/build/pdfmake.min.js.map +1 -1
- package/build/vfs_fonts.js +6 -6
- package/package.json +110 -110
- package/src/3rd-party/svg-to-pdfkit.js +3 -3
- package/src/browser-extensions/URLBrowserResolver.js +96 -96
- package/src/browser-extensions/pdfMake.js +361 -361
- package/src/browser-extensions/tokenizer-shim.js +15 -15
- package/src/browser-extensions/virtual-fs.js +55 -55
- package/src/columnCalculator.js +157 -157
- package/src/docMeasure.js +831 -831
- package/src/docPreprocessor.js +277 -277
- package/src/documentContext.js +383 -383
- package/src/elementWriter.js +434 -434
- package/src/fontProvider.js +68 -68
- package/src/helpers.js +138 -138
- package/src/imageMeasure.js +70 -70
- package/src/layoutBuilder.js +1770 -1770
- package/src/line.js +91 -91
- package/src/pageElementWriter.js +362 -362
- package/src/pdfKitEngine.js +21 -21
- package/src/printer.js +1191 -1191
- package/src/qrEnc.js +790 -790
- package/src/standardPageSizes.js +54 -54
- package/src/styleContextStack.js +138 -138
- package/src/svgMeasure.js +70 -70
- package/src/tableProcessor.js +789 -784
- package/src/textDecorator.js +157 -157
- package/src/textTools.js +442 -442
- package/src/traversalTracker.js +47 -47
package/package.json
CHANGED
|
@@ -1,110 +1,110 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@flowaccount/pdfmake",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "Client/server side PDF printing in pure JavaScript",
|
|
5
|
-
"main": "src/printer.js",
|
|
6
|
-
"browser": "build/pdfmake.js",
|
|
7
|
-
"directories": {
|
|
8
|
-
"test": "tests"
|
|
9
|
-
},
|
|
10
|
-
"dependencies": {
|
|
11
|
-
"@flowaccount/node-icu-tokenizer": "2.0.0",
|
|
12
|
-
"@foliojs-fork/linebreak": "^1.1.2",
|
|
13
|
-
"@foliojs-fork/pdfkit": "^0.15.3",
|
|
14
|
-
"iconv-lite": "^0.6.3",
|
|
15
|
-
"lodash": "^4.17.15",
|
|
16
|
-
"xmldoc": "^2.0.1",
|
|
17
|
-
"pdfkit": "^0.8.3"
|
|
18
|
-
},
|
|
19
|
-
"devDependencies": {
|
|
20
|
-
"@babel/cli": "^7.27.2",
|
|
21
|
-
"@babel/core": "^7.27.1",
|
|
22
|
-
"@babel/plugin-transform-modules-commonjs": "^7.27.1",
|
|
23
|
-
"@babel/preset-env": "^7.27.2",
|
|
24
|
-
"@eslint/js": "^9.26.0",
|
|
25
|
-
"assert": "^2.1.0",
|
|
26
|
-
"babel-loader": "^10.0.0",
|
|
27
|
-
"brfs": "^2.0.2",
|
|
28
|
-
"browserify-zlib": "^0.2.0",
|
|
29
|
-
"buffer": "^6.0.3",
|
|
30
|
-
"core-js": "3.19.0",
|
|
31
|
-
"eslint": "^9.26.0",
|
|
32
|
-
"eslint-plugin-jsdoc": "^50.6.11",
|
|
33
|
-
"expose-loader": "^5.0.1",
|
|
34
|
-
"file-saver": "^2.0.5",
|
|
35
|
-
"globals": "^16.1.0",
|
|
36
|
-
"mocha": "^11.2.2",
|
|
37
|
-
"npm-run-all": "^4.1.5",
|
|
38
|
-
"path-browserify": "^1.0.1",
|
|
39
|
-
"process": "^0.11.10",
|
|
40
|
-
"rewire": "^7.0.0",
|
|
41
|
-
"shx": "^0.4.0",
|
|
42
|
-
"sinon": "^20.0.0",
|
|
43
|
-
"source-map-loader": "^5.0.0",
|
|
44
|
-
"stream-browserify": "^3.0.0",
|
|
45
|
-
"string-replace-webpack-plugin": "^0.1.3",
|
|
46
|
-
"svg-to-pdfkit": "^0.1.8",
|
|
47
|
-
"terser-webpack-plugin": "^5.3.14",
|
|
48
|
-
"transform-loader": "^0.2.4",
|
|
49
|
-
"util": "^0.12.5",
|
|
50
|
-
"webpack": "^5.99.8",
|
|
51
|
-
"webpack-cli": "^6.0.1"
|
|
52
|
-
},
|
|
53
|
-
"engines": {
|
|
54
|
-
"node": ">=18"
|
|
55
|
-
},
|
|
56
|
-
"scripts": {
|
|
57
|
-
"test": "run-s build mocha",
|
|
58
|
-
"build": "run-s build:3rdparty build:browser",
|
|
59
|
-
"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",
|
|
60
|
-
"build:browser": "webpack",
|
|
61
|
-
"build:browser-standard-fonts": "webpack --config webpack-standardfonts.config.js",
|
|
62
|
-
"build:vfs": "node build-vfs.js \"./examples/fonts\"",
|
|
63
|
-
"build:examples": "node build-examples.js",
|
|
64
|
-
"lint": "eslint \"./src/**/*.js\" \"./tests/**/*.js\" \"./examples/**/*.js\"",
|
|
65
|
-
"mocha": "mocha --reporter spec --timeout 5000 \"./tests/**/*.js\"",
|
|
66
|
-
"playground": "node dev-playground/server.js",
|
|
67
|
-
"format": "prettier --write .",
|
|
68
|
-
"format:check": "prettier --check .",
|
|
69
|
-
"publish:local": "cp .npmrc.local .npmrc && npm version 0.2.20-local.$(date +%s) --no-git-tag-version && npm publish --registry=http://localhost:4872",
|
|
70
|
-
"publish:staging": "npm run build && npm run test && npm version prerelease --preid=staging --no-git-tag-version && npm publish --tag staging --access public",
|
|
71
|
-
"publish:production": "npm run build && npm run test && npm publish",
|
|
72
|
-
"version:patch": "npm version patch",
|
|
73
|
-
"version:minor": "npm version minor",
|
|
74
|
-
"version:major": "npm version major"
|
|
75
|
-
},
|
|
76
|
-
"repository": {
|
|
77
|
-
"type": "git",
|
|
78
|
-
"url": "git://github.com/bpampuch/pdfmake.git"
|
|
79
|
-
},
|
|
80
|
-
"keywords": [
|
|
81
|
-
"pdf",
|
|
82
|
-
"javascript",
|
|
83
|
-
"printing",
|
|
84
|
-
"layout"
|
|
85
|
-
],
|
|
86
|
-
"author": "FlowAccount Co., Ltd. <voravit@flowaccount.com>",
|
|
87
|
-
"license": "MIT",
|
|
88
|
-
"bugs": {
|
|
89
|
-
"url": "https://github.com/bpampuch/pdfmake/issues"
|
|
90
|
-
},
|
|
91
|
-
"homepage": "http://pdfmake.org",
|
|
92
|
-
"config": {
|
|
93
|
-
"blanket": {
|
|
94
|
-
"pattern": "src",
|
|
95
|
-
"data-cover-never": [
|
|
96
|
-
"node_modules",
|
|
97
|
-
"tests"
|
|
98
|
-
]
|
|
99
|
-
}
|
|
100
|
-
},
|
|
101
|
-
"files": [
|
|
102
|
-
"src/",
|
|
103
|
-
"build/pdfmake.js",
|
|
104
|
-
"build/pdfmake.min.js",
|
|
105
|
-
"build/pdfmake.min.js.map",
|
|
106
|
-
"build/vfs_fonts.js",
|
|
107
|
-
"README.md",
|
|
108
|
-
"LICENSE"
|
|
109
|
-
]
|
|
110
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@flowaccount/pdfmake",
|
|
3
|
+
"version": "1.0.5-staging.0",
|
|
4
|
+
"description": "Client/server side PDF printing in pure JavaScript",
|
|
5
|
+
"main": "src/printer.js",
|
|
6
|
+
"browser": "build/pdfmake.js",
|
|
7
|
+
"directories": {
|
|
8
|
+
"test": "tests"
|
|
9
|
+
},
|
|
10
|
+
"dependencies": {
|
|
11
|
+
"@flowaccount/node-icu-tokenizer": "2.0.0",
|
|
12
|
+
"@foliojs-fork/linebreak": "^1.1.2",
|
|
13
|
+
"@foliojs-fork/pdfkit": "^0.15.3",
|
|
14
|
+
"iconv-lite": "^0.6.3",
|
|
15
|
+
"lodash": "^4.17.15",
|
|
16
|
+
"xmldoc": "^2.0.1",
|
|
17
|
+
"pdfkit": "^0.8.3"
|
|
18
|
+
},
|
|
19
|
+
"devDependencies": {
|
|
20
|
+
"@babel/cli": "^7.27.2",
|
|
21
|
+
"@babel/core": "^7.27.1",
|
|
22
|
+
"@babel/plugin-transform-modules-commonjs": "^7.27.1",
|
|
23
|
+
"@babel/preset-env": "^7.27.2",
|
|
24
|
+
"@eslint/js": "^9.26.0",
|
|
25
|
+
"assert": "^2.1.0",
|
|
26
|
+
"babel-loader": "^10.0.0",
|
|
27
|
+
"brfs": "^2.0.2",
|
|
28
|
+
"browserify-zlib": "^0.2.0",
|
|
29
|
+
"buffer": "^6.0.3",
|
|
30
|
+
"core-js": "3.19.0",
|
|
31
|
+
"eslint": "^9.26.0",
|
|
32
|
+
"eslint-plugin-jsdoc": "^50.6.11",
|
|
33
|
+
"expose-loader": "^5.0.1",
|
|
34
|
+
"file-saver": "^2.0.5",
|
|
35
|
+
"globals": "^16.1.0",
|
|
36
|
+
"mocha": "^11.2.2",
|
|
37
|
+
"npm-run-all": "^4.1.5",
|
|
38
|
+
"path-browserify": "^1.0.1",
|
|
39
|
+
"process": "^0.11.10",
|
|
40
|
+
"rewire": "^7.0.0",
|
|
41
|
+
"shx": "^0.4.0",
|
|
42
|
+
"sinon": "^20.0.0",
|
|
43
|
+
"source-map-loader": "^5.0.0",
|
|
44
|
+
"stream-browserify": "^3.0.0",
|
|
45
|
+
"string-replace-webpack-plugin": "^0.1.3",
|
|
46
|
+
"svg-to-pdfkit": "^0.1.8",
|
|
47
|
+
"terser-webpack-plugin": "^5.3.14",
|
|
48
|
+
"transform-loader": "^0.2.4",
|
|
49
|
+
"util": "^0.12.5",
|
|
50
|
+
"webpack": "^5.99.8",
|
|
51
|
+
"webpack-cli": "^6.0.1"
|
|
52
|
+
},
|
|
53
|
+
"engines": {
|
|
54
|
+
"node": ">=18"
|
|
55
|
+
},
|
|
56
|
+
"scripts": {
|
|
57
|
+
"test": "run-s build mocha",
|
|
58
|
+
"build": "run-s build:3rdparty build:browser",
|
|
59
|
+
"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",
|
|
60
|
+
"build:browser": "webpack",
|
|
61
|
+
"build:browser-standard-fonts": "webpack --config webpack-standardfonts.config.js",
|
|
62
|
+
"build:vfs": "node build-vfs.js \"./examples/fonts\"",
|
|
63
|
+
"build:examples": "node build-examples.js",
|
|
64
|
+
"lint": "eslint \"./src/**/*.js\" \"./tests/**/*.js\" \"./examples/**/*.js\"",
|
|
65
|
+
"mocha": "mocha --reporter spec --timeout 5000 \"./tests/**/*.js\"",
|
|
66
|
+
"playground": "node dev-playground/server.js",
|
|
67
|
+
"format": "prettier --write .",
|
|
68
|
+
"format:check": "prettier --check .",
|
|
69
|
+
"publish:local": "cp .npmrc.local .npmrc && npm version 0.2.20-local.$(date +%s) --no-git-tag-version && npm publish --registry=http://localhost:4872",
|
|
70
|
+
"publish:staging": "npm run build && npm run test && npm version prerelease --preid=staging --no-git-tag-version && npm publish --tag staging --access public",
|
|
71
|
+
"publish:production": "npm run build && npm run test && npm publish",
|
|
72
|
+
"version:patch": "npm version patch",
|
|
73
|
+
"version:minor": "npm version minor",
|
|
74
|
+
"version:major": "npm version major"
|
|
75
|
+
},
|
|
76
|
+
"repository": {
|
|
77
|
+
"type": "git",
|
|
78
|
+
"url": "git://github.com/bpampuch/pdfmake.git"
|
|
79
|
+
},
|
|
80
|
+
"keywords": [
|
|
81
|
+
"pdf",
|
|
82
|
+
"javascript",
|
|
83
|
+
"printing",
|
|
84
|
+
"layout"
|
|
85
|
+
],
|
|
86
|
+
"author": "FlowAccount Co., Ltd. <voravit@flowaccount.com>",
|
|
87
|
+
"license": "MIT",
|
|
88
|
+
"bugs": {
|
|
89
|
+
"url": "https://github.com/bpampuch/pdfmake/issues"
|
|
90
|
+
},
|
|
91
|
+
"homepage": "http://pdfmake.org",
|
|
92
|
+
"config": {
|
|
93
|
+
"blanket": {
|
|
94
|
+
"pattern": "src",
|
|
95
|
+
"data-cover-never": [
|
|
96
|
+
"node_modules",
|
|
97
|
+
"tests"
|
|
98
|
+
]
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
"files": [
|
|
102
|
+
"src/",
|
|
103
|
+
"build/pdfmake.js",
|
|
104
|
+
"build/pdfmake.min.js",
|
|
105
|
+
"build/pdfmake.min.js.map",
|
|
106
|
+
"build/vfs_fonts.js",
|
|
107
|
+
"README.md",
|
|
108
|
+
"LICENSE"
|
|
109
|
+
]
|
|
110
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var SVGtoPDF = require('./svg-to-pdfkit/source.js');
|
|
2
|
-
|
|
3
|
-
module.exports = SVGtoPDF;
|
|
1
|
+
var SVGtoPDF = require('./svg-to-pdfkit/source.js');
|
|
2
|
+
|
|
3
|
+
module.exports = SVGtoPDF;
|
|
@@ -1,96 +1,96 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
// Internet Explorer polyfills
|
|
4
|
-
if (typeof window !== 'undefined' && !window.Promise) {
|
|
5
|
-
require('core-js/features/promise');
|
|
6
|
-
}
|
|
7
|
-
require('core-js/es/object/values');
|
|
8
|
-
|
|
9
|
-
var fetchUrl = function (url, headers) {
|
|
10
|
-
return new Promise(function (resolve, reject) {
|
|
11
|
-
var xhr = new XMLHttpRequest();
|
|
12
|
-
xhr.open('GET', url, true);
|
|
13
|
-
for (var headerName in headers) {
|
|
14
|
-
xhr.setRequestHeader(headerName, headers[headerName]);
|
|
15
|
-
}
|
|
16
|
-
xhr.responseType = 'arraybuffer';
|
|
17
|
-
|
|
18
|
-
xhr.onreadystatechange = function () {
|
|
19
|
-
if (xhr.readyState !== 4) {
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
var ok = xhr.status >= 200 && xhr.status < 300;
|
|
24
|
-
if (!ok) {
|
|
25
|
-
setTimeout(function () {
|
|
26
|
-
reject(new TypeError('Failed to fetch (url: "' + url + '")'));
|
|
27
|
-
}, 0);
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
xhr.onload = function () {
|
|
32
|
-
var ok = xhr.status >= 200 && xhr.status < 300;
|
|
33
|
-
if (ok) {
|
|
34
|
-
resolve(xhr.response);
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
xhr.onerror = function () {
|
|
39
|
-
setTimeout(function () {
|
|
40
|
-
reject(new TypeError('Network request failed (url: "' + url + '")'));
|
|
41
|
-
}, 0);
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
xhr.ontimeout = function () {
|
|
45
|
-
setTimeout(function () {
|
|
46
|
-
reject(new TypeError('Network request failed (url: "' + url + '")'));
|
|
47
|
-
}, 0);
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
xhr.send();
|
|
51
|
-
});
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
function URLBrowserResolver(fs) {
|
|
55
|
-
this.fs = fs;
|
|
56
|
-
this.resolving = {};
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
URLBrowserResolver.prototype.resolve = function (url, headers) {
|
|
60
|
-
if (!this.resolving[url]) {
|
|
61
|
-
var _this = this;
|
|
62
|
-
this.resolving[url] = new Promise(function (resolve, reject) {
|
|
63
|
-
if (url.toLowerCase().indexOf('https://') === 0 || url.toLowerCase().indexOf('http://') === 0) {
|
|
64
|
-
if (_this.fs.existsSync(url)) {
|
|
65
|
-
// url was downloaded earlier
|
|
66
|
-
resolve();
|
|
67
|
-
} else {
|
|
68
|
-
fetchUrl(url, headers).then(function (buffer) {
|
|
69
|
-
_this.fs.writeFileSync(url, buffer);
|
|
70
|
-
resolve();
|
|
71
|
-
}, function (result) {
|
|
72
|
-
reject(result);
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
} else {
|
|
76
|
-
// cannot be resolved
|
|
77
|
-
resolve();
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
return this.resolving[url];
|
|
83
|
-
};
|
|
84
|
-
|
|
85
|
-
URLBrowserResolver.prototype.resolved = function () {
|
|
86
|
-
var _this = this;
|
|
87
|
-
return new Promise(function (resolve, reject) {
|
|
88
|
-
Promise.all(Object.values(_this.resolving)).then(function () {
|
|
89
|
-
resolve();
|
|
90
|
-
}, function (result) {
|
|
91
|
-
reject(result);
|
|
92
|
-
});
|
|
93
|
-
});
|
|
94
|
-
};
|
|
95
|
-
|
|
96
|
-
module.exports = URLBrowserResolver;
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// Internet Explorer polyfills
|
|
4
|
+
if (typeof window !== 'undefined' && !window.Promise) {
|
|
5
|
+
require('core-js/features/promise');
|
|
6
|
+
}
|
|
7
|
+
require('core-js/es/object/values');
|
|
8
|
+
|
|
9
|
+
var fetchUrl = function (url, headers) {
|
|
10
|
+
return new Promise(function (resolve, reject) {
|
|
11
|
+
var xhr = new XMLHttpRequest();
|
|
12
|
+
xhr.open('GET', url, true);
|
|
13
|
+
for (var headerName in headers) {
|
|
14
|
+
xhr.setRequestHeader(headerName, headers[headerName]);
|
|
15
|
+
}
|
|
16
|
+
xhr.responseType = 'arraybuffer';
|
|
17
|
+
|
|
18
|
+
xhr.onreadystatechange = function () {
|
|
19
|
+
if (xhr.readyState !== 4) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
var ok = xhr.status >= 200 && xhr.status < 300;
|
|
24
|
+
if (!ok) {
|
|
25
|
+
setTimeout(function () {
|
|
26
|
+
reject(new TypeError('Failed to fetch (url: "' + url + '")'));
|
|
27
|
+
}, 0);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
xhr.onload = function () {
|
|
32
|
+
var ok = xhr.status >= 200 && xhr.status < 300;
|
|
33
|
+
if (ok) {
|
|
34
|
+
resolve(xhr.response);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
xhr.onerror = function () {
|
|
39
|
+
setTimeout(function () {
|
|
40
|
+
reject(new TypeError('Network request failed (url: "' + url + '")'));
|
|
41
|
+
}, 0);
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
xhr.ontimeout = function () {
|
|
45
|
+
setTimeout(function () {
|
|
46
|
+
reject(new TypeError('Network request failed (url: "' + url + '")'));
|
|
47
|
+
}, 0);
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
xhr.send();
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
function URLBrowserResolver(fs) {
|
|
55
|
+
this.fs = fs;
|
|
56
|
+
this.resolving = {};
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
URLBrowserResolver.prototype.resolve = function (url, headers) {
|
|
60
|
+
if (!this.resolving[url]) {
|
|
61
|
+
var _this = this;
|
|
62
|
+
this.resolving[url] = new Promise(function (resolve, reject) {
|
|
63
|
+
if (url.toLowerCase().indexOf('https://') === 0 || url.toLowerCase().indexOf('http://') === 0) {
|
|
64
|
+
if (_this.fs.existsSync(url)) {
|
|
65
|
+
// url was downloaded earlier
|
|
66
|
+
resolve();
|
|
67
|
+
} else {
|
|
68
|
+
fetchUrl(url, headers).then(function (buffer) {
|
|
69
|
+
_this.fs.writeFileSync(url, buffer);
|
|
70
|
+
resolve();
|
|
71
|
+
}, function (result) {
|
|
72
|
+
reject(result);
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
} else {
|
|
76
|
+
// cannot be resolved
|
|
77
|
+
resolve();
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return this.resolving[url];
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
URLBrowserResolver.prototype.resolved = function () {
|
|
86
|
+
var _this = this;
|
|
87
|
+
return new Promise(function (resolve, reject) {
|
|
88
|
+
Promise.all(Object.values(_this.resolving)).then(function () {
|
|
89
|
+
resolve();
|
|
90
|
+
}, function (result) {
|
|
91
|
+
reject(result);
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
module.exports = URLBrowserResolver;
|