pdfmake 0.3.0-beta.2 → 0.3.0-beta.4

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 (57) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/LICENSE +1 -1
  3. package/README.md +1 -1
  4. package/build/pdfmake.js +2988 -9785
  5. package/build/pdfmake.js.map +1 -1
  6. package/build/pdfmake.min.js +2 -2
  7. package/build/pdfmake.min.js.map +1 -1
  8. package/build/vfs_fonts.js +6 -5
  9. package/fonts/Roboto/Roboto-Italic.ttf +0 -0
  10. package/fonts/Roboto/Roboto-Medium.ttf +0 -0
  11. package/fonts/Roboto/Roboto-MediumItalic.ttf +0 -0
  12. package/fonts/Roboto/Roboto-Regular.ttf +0 -0
  13. package/js/3rd-party/svg-to-pdfkit/source.js +247 -920
  14. package/js/3rd-party/svg-to-pdfkit.js +0 -3
  15. package/js/DocMeasure.js +6 -139
  16. package/js/DocPreprocessor.js +2 -54
  17. package/js/DocumentContext.js +0 -40
  18. package/js/ElementWriter.js +2 -70
  19. package/js/LayoutBuilder.js +20 -165
  20. package/js/Line.js +6 -25
  21. package/js/OutputDocument.js +4 -13
  22. package/js/OutputDocumentServer.js +0 -6
  23. package/js/PDFDocument.js +1 -46
  24. package/js/PageElementWriter.js +7 -31
  25. package/js/PageSize.js +2 -16
  26. package/js/Printer.js +50 -59
  27. package/js/Renderer.js +11 -98
  28. package/js/SVGMeasure.js +1 -20
  29. package/js/StyleContextStack.js +12 -36
  30. package/js/TableProcessor.js +36 -117
  31. package/js/TextBreaker.js +2 -44
  32. package/js/TextDecorator.js +1 -38
  33. package/js/TextInlines.js +8 -49
  34. package/js/URLResolver.js +10 -18
  35. package/js/base.js +1 -17
  36. package/js/browser-extensions/OutputDocumentBrowser.js +5 -17
  37. package/js/browser-extensions/URLBrowserResolver.js +0 -17
  38. package/js/browser-extensions/fonts/Roboto.js +0 -4
  39. package/js/browser-extensions/index.js +0 -16
  40. package/js/browser-extensions/pdfMake.js +2 -4
  41. package/js/browser-extensions/standard-fonts/Courier.js +0 -4
  42. package/js/browser-extensions/standard-fonts/Helvetica.js +0 -4
  43. package/js/browser-extensions/standard-fonts/Symbol.js +0 -4
  44. package/js/browser-extensions/standard-fonts/Times.js +0 -4
  45. package/js/browser-extensions/standard-fonts/ZapfDingbats.js +0 -4
  46. package/js/columnCalculator.js +6 -18
  47. package/js/helpers/node.js +3 -27
  48. package/js/helpers/tools.js +0 -8
  49. package/js/helpers/variableType.js +4 -9
  50. package/js/index.js +0 -6
  51. package/js/qrEnc.js +126 -215
  52. package/js/tableLayouts.js +1 -28
  53. package/js/virtual-fs.js +3 -19
  54. package/package.json +2 -2
  55. package/src/3rd-party/svg-to-pdfkit/LICENSE +9 -9
  56. package/src/Printer.js +41 -13
  57. package/src/URLResolver.js +10 -5
@@ -2,17 +2,11 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.default = void 0;
5
-
6
5
  var _variableType = require("./helpers/variableType");
7
-
8
6
  var _tools = require("./helpers/tools");
9
-
10
7
  var _DocumentContext = _interopRequireDefault(require("./DocumentContext"));
11
-
12
8
  var _events = require("events");
13
-
14
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
10
  /**
17
11
  * A line/vector writer, which adds elements to current page and sets
18
12
  * their positions based on the context
@@ -23,21 +17,17 @@ class ElementWriter extends _events.EventEmitter {
23
17
  this._context = context;
24
18
  this.contextStack = [];
25
19
  }
26
-
27
20
  context() {
28
21
  return this._context;
29
22
  }
30
-
31
23
  addLine(line, dontUpdateContextPosition, index) {
32
24
  let height = line.getHeight();
33
25
  let context = this.context();
34
26
  let page = context.getCurrentPage();
35
27
  let position = this.getCurrentPositionOnPage();
36
-
37
28
  if (context.availableHeight < height || !page) {
38
29
  return false;
39
30
  }
40
-
41
31
  line.x = context.x + (line.x || 0);
42
32
  line.y = context.y + (line.y || 0);
43
33
  this.alignLine(line);
@@ -46,37 +36,29 @@ class ElementWriter extends _events.EventEmitter {
46
36
  item: line
47
37
  }, index);
48
38
  this.emit('lineAdded', line);
49
-
50
39
  if (!dontUpdateContextPosition) {
51
40
  context.moveDown(height);
52
41
  }
53
-
54
42
  return position;
55
43
  }
56
-
57
44
  alignLine(line) {
58
45
  let width = this.context().availableWidth;
59
46
  let lineWidth = line.getWidth();
60
47
  let alignment = line.inlines && line.inlines.length > 0 && line.inlines[0].alignment;
61
48
  let offset = 0;
62
-
63
49
  switch (alignment) {
64
50
  case 'right':
65
51
  offset = width - lineWidth;
66
52
  break;
67
-
68
53
  case 'center':
69
54
  offset = (width - lineWidth) / 2;
70
55
  break;
71
56
  }
72
-
73
57
  if (offset) {
74
58
  line.x = (line.x || 0) + offset;
75
59
  }
76
-
77
60
  if (alignment === 'justify' && !line.newLineForced && !line.lastLineInParagraph && line.inlines.length > 1) {
78
61
  let additionalSpacing = (width - lineWidth) / (line.inlines.length - 1);
79
-
80
62
  for (let i = 1, l = line.inlines.length; i < l; i++) {
81
63
  offset = i * additionalSpacing;
82
64
  line.inlines[i].x += offset;
@@ -84,20 +66,16 @@ class ElementWriter extends _events.EventEmitter {
84
66
  }
85
67
  }
86
68
  }
87
-
88
69
  addImage(image, index) {
89
70
  let context = this.context();
90
71
  let page = context.getCurrentPage();
91
72
  let position = this.getCurrentPositionOnPage();
92
-
93
73
  if (!page || image.absolutePosition === undefined && context.availableHeight < image._height && page.items.length > 0) {
94
74
  return false;
95
75
  }
96
-
97
76
  if (image._x === undefined) {
98
77
  image._x = image.x || 0;
99
78
  }
100
-
101
79
  image.x = context.x + image._x;
102
80
  image.y = context.y;
103
81
  this.alignImage(image);
@@ -108,24 +86,21 @@ class ElementWriter extends _events.EventEmitter {
108
86
  context.moveDown(image._height);
109
87
  return position;
110
88
  }
111
-
112
89
  addCanvas(node, index) {
113
90
  let context = this.context();
114
91
  let page = context.getCurrentPage();
115
92
  let positions = [];
116
93
  let height = node._minHeight;
117
-
118
94
  if (!page || node.absolutePosition === undefined && context.availableHeight < height) {
119
95
  // TODO: support for canvas larger than a page
120
96
  // TODO: support for other overflow methods
97
+
121
98
  return false;
122
99
  }
123
-
124
100
  this.alignCanvas(node);
125
101
  node.canvas.forEach(function (vector) {
126
102
  let position = this.addVector(vector, false, false, index);
127
103
  positions.push(position);
128
-
129
104
  if (index !== undefined) {
130
105
  index++;
131
106
  }
@@ -133,21 +108,17 @@ class ElementWriter extends _events.EventEmitter {
133
108
  context.moveDown(height);
134
109
  return positions;
135
110
  }
136
-
137
111
  addSVG(image, index) {
138
112
  // TODO: same as addImage
139
113
  let context = this.context();
140
114
  let page = context.getCurrentPage();
141
115
  let position = this.getCurrentPositionOnPage();
142
-
143
116
  if (!page || image.absolutePosition === undefined && context.availableHeight < image._height && page.items.length > 0) {
144
117
  return false;
145
118
  }
146
-
147
119
  if (image._x === undefined) {
148
120
  image._x = image.x || 0;
149
121
  }
150
-
151
122
  image.x = context.x + image._x;
152
123
  image.y = context.y;
153
124
  this.alignImage(image);
@@ -158,48 +129,38 @@ class ElementWriter extends _events.EventEmitter {
158
129
  context.moveDown(image._height);
159
130
  return position;
160
131
  }
161
-
162
132
  addQr(qr, index) {
163
133
  let context = this.context();
164
134
  let page = context.getCurrentPage();
165
135
  let position = this.getCurrentPositionOnPage();
166
-
167
136
  if (!page || qr.absolutePosition === undefined && context.availableHeight < qr._height) {
168
137
  return false;
169
138
  }
170
-
171
139
  if (qr._x === undefined) {
172
140
  qr._x = qr.x || 0;
173
141
  }
174
-
175
142
  qr.x = context.x + qr._x;
176
143
  qr.y = context.y;
177
144
  this.alignImage(qr);
178
-
179
145
  for (let i = 0, l = qr._canvas.length; i < l; i++) {
180
146
  let vector = qr._canvas[i];
181
147
  vector.x += qr.x;
182
148
  vector.y += qr.y;
183
149
  this.addVector(vector, true, true, index);
184
150
  }
185
-
186
151
  context.moveDown(qr._height);
187
152
  return position;
188
153
  }
189
-
190
154
  addAttachment(attachment, index) {
191
155
  let context = this.context();
192
156
  let page = context.getCurrentPage();
193
157
  let position = this.getCurrentPositionOnPage();
194
-
195
158
  if (!page || attachment.absolutePosition === undefined && context.availableHeight < attachment._height && page.items.length > 0) {
196
159
  return false;
197
160
  }
198
-
199
161
  if (attachment._x === undefined) {
200
162
  attachment._x = attachment.x || 0;
201
163
  }
202
-
203
164
  attachment.x = context.x + attachment._x;
204
165
  attachment.y = context.y;
205
166
  addPageItem(page, {
@@ -209,54 +170,44 @@ class ElementWriter extends _events.EventEmitter {
209
170
  context.moveDown(attachment._height);
210
171
  return position;
211
172
  }
212
-
213
173
  alignImage(image) {
214
174
  let width = this.context().availableWidth;
215
175
  let imageWidth = image._minWidth;
216
176
  let offset = 0;
217
-
218
177
  switch (image._alignment) {
219
178
  case 'right':
220
179
  offset = width - imageWidth;
221
180
  break;
222
-
223
181
  case 'center':
224
182
  offset = (width - imageWidth) / 2;
225
183
  break;
226
184
  }
227
-
228
185
  if (offset) {
229
186
  image.x = (image.x || 0) + offset;
230
187
  }
231
188
  }
232
-
233
189
  alignCanvas(node) {
234
190
  let width = this.context().availableWidth;
235
191
  let canvasWidth = node._minWidth;
236
192
  let offset = 0;
237
-
238
193
  switch (node._alignment) {
239
194
  case 'right':
240
195
  offset = width - canvasWidth;
241
196
  break;
242
-
243
197
  case 'center':
244
198
  offset = (width - canvasWidth) / 2;
245
199
  break;
246
200
  }
247
-
248
201
  if (offset) {
249
202
  node.canvas.forEach(vector => {
250
203
  (0, _tools.offsetVector)(vector, offset, 0);
251
204
  });
252
205
  }
253
206
  }
254
-
255
207
  addVector(vector, ignoreContextX, ignoreContextY, index) {
256
208
  let context = this.context();
257
209
  let page = context.getCurrentPage();
258
210
  let position = this.getCurrentPositionOnPage();
259
-
260
211
  if (page) {
261
212
  (0, _tools.offsetVector)(vector, ignoreContextX ? 0 : context.x, ignoreContextY ? 0 : context.y);
262
213
  addPageItem(page, {
@@ -266,7 +217,6 @@ class ElementWriter extends _events.EventEmitter {
266
217
  return position;
267
218
  }
268
219
  }
269
-
270
220
  beginClip(width, height) {
271
221
  let ctx = this.context();
272
222
  let page = ctx.getCurrentPage();
@@ -281,7 +231,6 @@ class ElementWriter extends _events.EventEmitter {
281
231
  });
282
232
  return true;
283
233
  }
284
-
285
234
  endClip() {
286
235
  let ctx = this.context();
287
236
  let page = ctx.getCurrentPage();
@@ -290,24 +239,19 @@ class ElementWriter extends _events.EventEmitter {
290
239
  });
291
240
  return true;
292
241
  }
293
-
294
242
  addFragment(block, useBlockXOffset, useBlockYOffset, dontUpdateContextPosition) {
295
243
  let ctx = this.context();
296
244
  let page = ctx.getCurrentPage();
297
-
298
245
  if (!useBlockXOffset && block.height > ctx.availableHeight) {
299
246
  return false;
300
247
  }
301
-
302
248
  block.items.forEach(item => {
303
249
  switch (item.type) {
304
250
  case 'line':
305
251
  var l = item.item.clone();
306
-
307
252
  if (l._node) {
308
253
  l._node.positions[0].pageNumber = ctx.page + 1;
309
254
  }
310
-
311
255
  l.x = (l.x || 0) + (useBlockXOffset ? block.xOffset || 0 : ctx.x);
312
256
  l.y = (l.y || 0) + (useBlockYOffset ? block.yOffset || 0 : ctx.y);
313
257
  page.items.push({
@@ -315,7 +259,6 @@ class ElementWriter extends _events.EventEmitter {
315
259
  item: l
316
260
  });
317
261
  break;
318
-
319
262
  case 'vector':
320
263
  var v = (0, _tools.pack)(item.item);
321
264
  (0, _tools.offsetVector)(v, useBlockXOffset ? block.xOffset || 0 : ctx.x, useBlockYOffset ? block.yOffset || 0 : ctx.y);
@@ -324,7 +267,6 @@ class ElementWriter extends _events.EventEmitter {
324
267
  item: v
325
268
  });
326
269
  break;
327
-
328
270
  case 'image':
329
271
  case 'svg':
330
272
  var img = (0, _tools.pack)(item.item);
@@ -337,13 +279,12 @@ class ElementWriter extends _events.EventEmitter {
337
279
  break;
338
280
  }
339
281
  });
340
-
341
282
  if (!dontUpdateContextPosition) {
342
283
  ctx.moveDown(block.height);
343
284
  }
344
-
345
285
  return true;
346
286
  }
287
+
347
288
  /**
348
289
  * Pushes the provided context onto the stack or creates a new one
349
290
  *
@@ -354,14 +295,11 @@ class ElementWriter extends _events.EventEmitter {
354
295
  * @param {object|number} contextOrWidth
355
296
  * @param {number} height
356
297
  */
357
-
358
-
359
298
  pushContext(contextOrWidth, height) {
360
299
  if (contextOrWidth === undefined) {
361
300
  height = this.context().getCurrentPage().height - this.context().pageMargins.top - this.context().pageMargins.bottom;
362
301
  contextOrWidth = this.context().availableWidth;
363
302
  }
364
-
365
303
  if ((0, _variableType.isNumber)(contextOrWidth)) {
366
304
  contextOrWidth = new _DocumentContext.default({
367
305
  width: contextOrWidth,
@@ -373,21 +311,16 @@ class ElementWriter extends _events.EventEmitter {
373
311
  bottom: 0
374
312
  });
375
313
  }
376
-
377
314
  this.contextStack.push(this.context());
378
315
  this._context = contextOrWidth;
379
316
  }
380
-
381
317
  popContext() {
382
318
  this._context = this.contextStack.pop();
383
319
  }
384
-
385
320
  getCurrentPositionOnPage() {
386
321
  return (this.contextStack[0] || this.context()).getCurrentPosition();
387
322
  }
388
-
389
323
  }
390
-
391
324
  function addPageItem(page, item, index) {
392
325
  if (index === null || index === undefined || index < 0 || index > page.items.length) {
393
326
  page.items.push(item);
@@ -395,6 +328,5 @@ function addPageItem(page, item, index) {
395
328
  page.items.splice(index, 0, item);
396
329
  }
397
330
  }
398
-
399
331
  var _default = ElementWriter;
400
332
  exports.default = _default;