pdfmake 0.2.20 → 0.2.21
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/CHANGELOG.md +6 -0
- package/build/pdfmake.js +39878 -39768
- package/build/pdfmake.js.map +1 -1
- package/build/pdfmake.min.js +2 -2
- package/build/pdfmake.min.js.map +1 -1
- package/build/vfs_fonts.js +4 -4
- package/package.json +15 -15
- package/src/layoutBuilder.js +11 -3
- package/src/textTools.js +28 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pdfmake",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.21",
|
|
4
4
|
"description": "Client/server side PDF printing in pure JavaScript",
|
|
5
5
|
"main": "src/printer.js",
|
|
6
6
|
"browser": "build/pdfmake.js",
|
|
@@ -10,40 +10,40 @@
|
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@foliojs-fork/linebreak": "^1.1.2",
|
|
12
12
|
"@foliojs-fork/pdfkit": "^0.15.3",
|
|
13
|
-
"iconv-lite": "^0.
|
|
14
|
-
"xmldoc": "^2.0.
|
|
13
|
+
"iconv-lite": "^0.7.1",
|
|
14
|
+
"xmldoc": "^2.0.3"
|
|
15
15
|
},
|
|
16
16
|
"devDependencies": {
|
|
17
|
-
"@babel/cli": "^7.
|
|
18
|
-
"@babel/core": "^7.
|
|
17
|
+
"@babel/cli": "^7.28.3",
|
|
18
|
+
"@babel/core": "^7.28.5",
|
|
19
19
|
"@babel/plugin-transform-modules-commonjs": "^7.27.1",
|
|
20
|
-
"@babel/preset-env": "^7.
|
|
21
|
-
"@eslint/js": "^9.
|
|
20
|
+
"@babel/preset-env": "^7.28.5",
|
|
21
|
+
"@eslint/js": "^9.39.2",
|
|
22
22
|
"assert": "^2.1.0",
|
|
23
23
|
"babel-loader": "^10.0.0",
|
|
24
24
|
"brfs": "^2.0.2",
|
|
25
25
|
"browserify-zlib": "^0.2.0",
|
|
26
26
|
"buffer": "^6.0.3",
|
|
27
27
|
"core-js": "3.19.0",
|
|
28
|
-
"eslint": "^9.
|
|
29
|
-
"eslint-plugin-jsdoc": "^
|
|
28
|
+
"eslint": "^9.39.2",
|
|
29
|
+
"eslint-plugin-jsdoc": "^61.5.0",
|
|
30
30
|
"expose-loader": "^5.0.1",
|
|
31
31
|
"file-saver": "^2.0.5",
|
|
32
|
-
"globals": "^16.
|
|
33
|
-
"mocha": "^11.
|
|
32
|
+
"globals": "^16.5.0",
|
|
33
|
+
"mocha": "^11.7.5",
|
|
34
34
|
"npm-run-all": "^4.1.5",
|
|
35
35
|
"process": "^0.11.10",
|
|
36
|
-
"rewire": "^
|
|
36
|
+
"rewire": "^9.0.1",
|
|
37
37
|
"shx": "^0.4.0",
|
|
38
|
-
"sinon": "^
|
|
38
|
+
"sinon": "^21.0.1",
|
|
39
39
|
"source-map-loader": "^5.0.0",
|
|
40
40
|
"stream-browserify": "^3.0.0",
|
|
41
41
|
"string-replace-webpack-plugin": "^0.1.3",
|
|
42
42
|
"svg-to-pdfkit": "^0.1.8",
|
|
43
|
-
"terser-webpack-plugin": "^5.3.
|
|
43
|
+
"terser-webpack-plugin": "^5.3.16",
|
|
44
44
|
"transform-loader": "^0.2.4",
|
|
45
45
|
"util": "^0.12.5",
|
|
46
|
-
"webpack": "^5.
|
|
46
|
+
"webpack": "^5.104.1",
|
|
47
47
|
"webpack-cli": "^6.0.1"
|
|
48
48
|
},
|
|
49
49
|
"engines": {
|
package/src/layoutBuilder.js
CHANGED
|
@@ -66,9 +66,17 @@ LayoutBuilder.prototype.layoutDocument = function (docStructure, fontProvider, s
|
|
|
66
66
|
return false;
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
const hasRenderableContent = node => {
|
|
70
|
+
if (!node || node.positions.length === 0) {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
if (node.text === '' && !node.listMarker) {
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
return true;
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
linearNodeList = linearNodeList.filter(hasRenderableContent);
|
|
72
80
|
|
|
73
81
|
linearNodeList.forEach(function (node) {
|
|
74
82
|
var nodeInfo = {};
|
package/src/textTools.js
CHANGED
|
@@ -118,8 +118,19 @@ TextTools.prototype.widthOfString = function (text, font, fontSize, characterSpa
|
|
|
118
118
|
return widthOfString(text, font, fontSize, characterSpacing, fontFeatures);
|
|
119
119
|
};
|
|
120
120
|
|
|
121
|
-
function splitWords(text, noWrap) {
|
|
121
|
+
function splitWords(text, noWrap, breakAll) {
|
|
122
|
+
if (breakAll === undefined) {
|
|
123
|
+
breakAll = false;
|
|
124
|
+
}
|
|
125
|
+
|
|
122
126
|
var results = [];
|
|
127
|
+
|
|
128
|
+
if (text === undefined || text === null) {
|
|
129
|
+
text = '';
|
|
130
|
+
} else {
|
|
131
|
+
text = String(text);
|
|
132
|
+
}
|
|
133
|
+
|
|
123
134
|
text = text.replace(/\t/g, ' ');
|
|
124
135
|
|
|
125
136
|
if (noWrap) {
|
|
@@ -127,6 +138,19 @@ function splitWords(text, noWrap) {
|
|
|
127
138
|
return results;
|
|
128
139
|
}
|
|
129
140
|
|
|
141
|
+
if (text.length === 0) {
|
|
142
|
+
results.push({ text: '' });
|
|
143
|
+
return results;
|
|
144
|
+
}
|
|
145
|
+
if (breakAll) {
|
|
146
|
+
return text.split('').map(c => {
|
|
147
|
+
if(c.match(/^\n$|^\r$/)) { // new line
|
|
148
|
+
return { text: '', lineEnd: true };
|
|
149
|
+
}
|
|
150
|
+
return { text: c };
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
|
|
130
154
|
var breaker = new LineBreaker(text);
|
|
131
155
|
var last = 0;
|
|
132
156
|
var bk;
|
|
@@ -205,15 +229,16 @@ function normalizeTextArray(array, styleContextStack) {
|
|
|
205
229
|
var style = null;
|
|
206
230
|
var words;
|
|
207
231
|
|
|
232
|
+
var breakAll = getStyleProperty(item || {}, styleContextStack, 'wordBreak', 'normal') === 'break-all';
|
|
208
233
|
var noWrap = getStyleProperty(item || {}, styleContextStack, 'noWrap', false);
|
|
209
234
|
if (isObject(item)) {
|
|
210
235
|
if (item._textRef && item._textRef._textNodeRef.text) {
|
|
211
236
|
item.text = item._textRef._textNodeRef.text;
|
|
212
237
|
}
|
|
213
|
-
words = splitWords(normalizeString(item.text), noWrap);
|
|
238
|
+
words = splitWords(normalizeString(item.text), noWrap, breakAll);
|
|
214
239
|
style = copyStyle(item);
|
|
215
240
|
} else {
|
|
216
|
-
words = splitWords(normalizeString(item), noWrap);
|
|
241
|
+
words = splitWords(normalizeString(item), noWrap, breakAll);
|
|
217
242
|
}
|
|
218
243
|
|
|
219
244
|
if (lastWord && words.length) {
|