pdfmake 0.3.0-beta.8 → 0.3.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.
Files changed (87) hide show
  1. package/CHANGELOG.md +7 -40
  2. package/LICENSE +1 -1
  3. package/README.md +78 -85
  4. package/build/pdfmake.js +60308 -68400
  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 +4 -4
  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 +3626 -0
  14. package/js/3rd-party/svg-to-pdfkit.js +7 -0
  15. package/js/DocMeasure.js +645 -0
  16. package/js/DocPreprocessor.js +253 -0
  17. package/js/DocumentContext.js +305 -0
  18. package/js/ElementWriter.js +354 -0
  19. package/js/LayoutBuilder.js +1105 -0
  20. package/js/Line.js +105 -0
  21. package/js/OutputDocument.js +64 -0
  22. package/js/OutputDocumentServer.js +22 -0
  23. package/js/PDFDocument.js +144 -0
  24. package/js/PageElementWriter.js +155 -0
  25. package/js/PageSize.js +74 -0
  26. package/js/Printer.js +291 -0
  27. package/js/Renderer.js +383 -0
  28. package/js/SVGMeasure.js +69 -0
  29. package/js/StyleContextStack.js +168 -0
  30. package/js/TableProcessor.js +548 -0
  31. package/js/TextBreaker.js +166 -0
  32. package/js/TextDecorator.js +143 -0
  33. package/js/TextInlines.js +206 -0
  34. package/js/URLResolver.js +43 -0
  35. package/js/base.js +52 -0
  36. package/js/browser-extensions/OutputDocumentBrowser.js +81 -0
  37. package/js/browser-extensions/fonts/Roboto.js +38 -0
  38. package/js/browser-extensions/index.js +53 -0
  39. package/js/browser-extensions/pdfMake.js +3 -0
  40. package/js/browser-extensions/standard-fonts/Courier.js +38 -0
  41. package/js/browser-extensions/standard-fonts/Helvetica.js +38 -0
  42. package/js/browser-extensions/standard-fonts/Symbol.js +23 -0
  43. package/js/browser-extensions/standard-fonts/Times.js +38 -0
  44. package/js/browser-extensions/standard-fonts/ZapfDingbats.js +23 -0
  45. package/js/browser-extensions/virtual-fs-cjs.js +3 -0
  46. package/js/columnCalculator.js +148 -0
  47. package/js/helpers/node.js +98 -0
  48. package/js/helpers/tools.js +46 -0
  49. package/js/helpers/variableType.js +59 -0
  50. package/js/index.js +15 -0
  51. package/js/qrEnc.js +721 -0
  52. package/js/standardPageSizes.js +56 -0
  53. package/js/tableLayouts.js +98 -0
  54. package/js/virtual-fs.js +60 -0
  55. package/package.json +25 -24
  56. package/src/DocMeasure.js +28 -7
  57. package/src/DocPreprocessor.js +25 -6
  58. package/src/DocumentContext.js +62 -33
  59. package/src/ElementWriter.js +30 -7
  60. package/src/LayoutBuilder.js +557 -120
  61. package/src/OutputDocument.js +23 -37
  62. package/src/OutputDocumentServer.js +6 -11
  63. package/src/PDFDocument.js +1 -1
  64. package/src/PageElementWriter.js +21 -2
  65. package/src/Printer.js +134 -131
  66. package/src/Renderer.js +13 -15
  67. package/src/SVGMeasure.js +2 -2
  68. package/src/StyleContextStack.js +7 -44
  69. package/src/TableProcessor.js +62 -22
  70. package/src/TextBreaker.js +24 -5
  71. package/src/TextInlines.js +1 -1
  72. package/src/URLResolver.js +24 -58
  73. package/src/base.js +1 -1
  74. package/src/browser-extensions/OutputDocumentBrowser.js +33 -71
  75. package/src/browser-extensions/index.js +3 -3
  76. package/src/browser-extensions/pdfMake.js +0 -14
  77. package/src/browser-extensions/standard-fonts/Courier.js +4 -4
  78. package/src/browser-extensions/standard-fonts/Helvetica.js +4 -4
  79. package/src/browser-extensions/standard-fonts/Symbol.js +1 -1
  80. package/src/browser-extensions/standard-fonts/Times.js +4 -4
  81. package/src/browser-extensions/standard-fonts/ZapfDingbats.js +1 -1
  82. package/src/columnCalculator.js +24 -3
  83. package/src/helpers/tools.js +5 -0
  84. package/src/helpers/variableType.js +11 -0
  85. package/src/index.js +1 -1
  86. package/standard-fonts/Helvetica.js +0 -1
  87. package/src/browser-extensions/URLBrowserResolver.js +0 -84
@@ -8,12 +8,19 @@ import { EventEmitter } from 'events';
8
8
  * their positions based on the context
9
9
  */
10
10
  class ElementWriter extends EventEmitter {
11
+
12
+ /**
13
+ * @param {DocumentContext} context
14
+ */
11
15
  constructor(context) {
12
16
  super();
13
17
  this._context = context;
14
18
  this.contextStack = [];
15
19
  }
16
20
 
21
+ /**
22
+ * @returns {DocumentContext}
23
+ */
17
24
  context() {
18
25
  return this._context;
19
26
  }
@@ -259,9 +266,12 @@ class ElementWriter extends EventEmitter {
259
266
  }
260
267
  }
261
268
 
262
- addVector(vector, ignoreContextX, ignoreContextY, index) {
269
+ addVector(vector, ignoreContextX, ignoreContextY, index, forcePage) {
263
270
  let context = this.context();
264
271
  let page = context.getCurrentPage();
272
+ if (isNumber(forcePage)) {
273
+ page = context.pages[forcePage];
274
+ }
265
275
  let position = this.getCurrentPositionOnPage();
266
276
 
267
277
  if (page) {
@@ -322,10 +332,21 @@ class ElementWriter extends EventEmitter {
322
332
  var v = pack(item.item);
323
333
 
324
334
  offsetVector(v, useBlockXOffset ? (block.xOffset || 0) : ctx.x, useBlockYOffset ? (block.yOffset || 0) : ctx.y);
325
- page.items.push({
326
- type: 'vector',
327
- item: v
328
- });
335
+ if (v._isFillColorFromUnbreakable) {
336
+ // If the item is a fillColor from an unbreakable block
337
+ // We have to add it at the beginning of the items body array of the page
338
+ delete v._isFillColorFromUnbreakable;
339
+ const endOfBackgroundItemsIndex = ctx.backgroundLength[ctx.page];
340
+ page.items.splice(endOfBackgroundItemsIndex, 0, {
341
+ type: 'vector',
342
+ item: v
343
+ });
344
+ } else {
345
+ page.items.push({
346
+ type: 'vector',
347
+ item: v
348
+ });
349
+ }
329
350
  break;
330
351
 
331
352
  case 'image':
@@ -357,7 +378,7 @@ class ElementWriter extends EventEmitter {
357
378
  * pushContext(width, height) - creates and pushes a new context with the specified width and height
358
379
  * pushContext() - creates a new context for unbreakable blocks (with current availableWidth and full-page-height)
359
380
  *
360
- * @param {object|number} contextOrWidth
381
+ * @param {DocumentContext|number} contextOrWidth
361
382
  * @param {number} height
362
383
  */
363
384
  pushContext(contextOrWidth, height) {
@@ -367,7 +388,9 @@ class ElementWriter extends EventEmitter {
367
388
  }
368
389
 
369
390
  if (isNumber(contextOrWidth)) {
370
- contextOrWidth = new DocumentContext({ width: contextOrWidth, height: height }, { left: 0, right: 0, top: 0, bottom: 0 });
391
+ let width = contextOrWidth;
392
+ contextOrWidth = new DocumentContext();
393
+ contextOrWidth.addPage({ width: width, height: height }, { left: 0, right: 0, top: 0, bottom: 0 });
371
394
  }
372
395
 
373
396
  this.contextStack.push(this.context());