abstract-document 17.0.4 → 17.0.5

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 CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/).
4
4
 
5
+ ## [17.0.4] - 2025-11-12
6
+
7
+ - AbstractDocument Bugfix non-string text in TextRun, memoize widthOfString() and heightOfString()
8
+
5
9
  ## [17.0.2] - 2025-11-10
6
10
 
7
11
  - AbstractDocument Pdf handle texts with newlines
@@ -4,7 +4,7 @@ export function create(props) {
4
4
  return {
5
5
  type: "TextRun",
6
6
  styleName,
7
- text,
7
+ text: (text ?? "").toString(),
8
8
  style,
9
9
  };
10
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"text-run.js","sourceRoot":"","sources":["../../../src/abstract-document/atoms/text-run.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,yBAAyB,CAAC;AAgBrD,MAAM,UAAU,MAAM,CAAC,KAAmB;IACxC,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,GAAG,KAAK,CAAC;IACnE,OAAO;QACL,IAAI,EAAE,SAAS;QACf,SAAS;QACT,IAAI;QACJ,KAAK;KACN,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"text-run.js","sourceRoot":"","sources":["../../../src/abstract-document/atoms/text-run.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,yBAAyB,CAAC;AAgBrD,MAAM,UAAU,MAAM,CAAC,KAAmB;IACxC,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,GAAG,KAAK,CAAC;IACnE,OAAO;QACL,IAAI,EAAE,SAAS;QACf,SAAS;QACT,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE;QAC7B,KAAK;KACN,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"measure.d.ts","sourceRoot":"","sources":["../../../src/abstract-document-exporters/pdf/measure.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAEvD,OAAO,EAAsB,IAAI,EAAE,MAAM,eAAe,CAAC;AAKzD,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,WAAW,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAIhH;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,CAAC,WAAW,EAC1B,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,WAAW,EACpC,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,GACzB,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAMxB;AAsLD,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,CAAC,WAAW,EAC1B,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,EACjC,aAAa,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAC3B,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,GACpB,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CA2FxB"}
1
+ {"version":3,"file":"measure.d.ts","sourceRoot":"","sources":["../../../src/abstract-document-exporters/pdf/measure.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAEvD,OAAO,EAAsB,IAAI,EAAE,MAAM,eAAe,CAAC;AAQzD,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,WAAW,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAOhH;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,CAAC,WAAW,EAC1B,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,WAAW,EACpC,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,GACzB,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAMxB;AA0LD,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,CAAC,WAAW,EAC1B,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,EACjC,aAAa,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAC3B,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,GACpB,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CA2FxB"}
@@ -3,10 +3,15 @@ import { exhaustiveCheck } from "ts-exhaustive-check";
3
3
  import { getHeaderAndFooter } from "./paginate.js";
4
4
  import { registerFonts, getFontNameStyle } from "./font.js";
5
5
  //tslint:disable:no-any variable-name
6
+ const widthOfStringCache = new Map();
7
+ const heightOfStringCache = new Map();
6
8
  export function measure(pdfKit, document) {
7
9
  let pdf = new pdfKit();
8
10
  registerFonts((fontName, fontSource) => pdf.registerFont(fontName, fontSource), document);
9
- return mergeMaps(document.children.map((s) => measureSection(pdf, document, s)));
11
+ const result = mergeMaps(document.children.map((s) => measureSection(pdf, document, s)));
12
+ widthOfStringCache.clear();
13
+ heightOfStringCache.clear();
14
+ return result;
10
15
  }
11
16
  export function measurePages(pdfKit, document, pages) {
12
17
  const pdf = new pdfKit();
@@ -33,7 +38,7 @@ function measureSection(pdfKit, parentResources, section, separateHeader, separa
33
38
  const firstPageHeaderAndFooters = getHeaderAndFooter(section, 1);
34
39
  const firstPageHeaderAndFootersExtracted = [
35
40
  [firstPageHeaderAndFooters.header, firstPageHeaderAndFooters.headerMargins],
36
- [firstPageHeaderAndFooters.footer, firstPageHeaderAndFooters.footerMargins]
41
+ [firstPageHeaderAndFooters.footer, firstPageHeaderAndFooters.footerMargins],
37
42
  ];
38
43
  const firstPageHeaderAndFooterSizes = firstPageHeaderAndFootersExtracted.reduce((prev, [sections, margins]) => {
39
44
  const availabelWidth = pageWidth - (margins.left + margins.right);
@@ -113,7 +118,9 @@ function measureParagraph(pdfKit, resources, availableSize, paragraph) {
113
118
  paragraphHeight += desiredHeight + currentRowHeight;
114
119
  }
115
120
  else {
116
- paragraphHeight += pdfKit.heightOfString(concatenatedText, {
121
+ const font = getFontNameStyle(style.textStyle);
122
+ const fontSize = AD.TextStyle.calculateFontSize(style.textStyle, 10);
123
+ paragraphHeight += heightOfString(pdfKit, font, fontSize, concatenatedText, {
117
124
  width: textOptions && textOptions.lineBreak === false ? Infinity : availableSize.width,
118
125
  ...textOptions,
119
126
  });
@@ -320,22 +327,43 @@ function measureText(pdf, text, textStyle, availableSize, measureWithSpaces) {
320
327
  };
321
328
  let measuredWidth = 0;
322
329
  if (measureWithSpaces !== undefined && measureWithSpaces) {
323
- const spaceWidth = pdf.widthOfString(" ", textOptions);
324
- const stringWidth = pdf.widthOfString(` ${text} `, textOptions) - (spaceWidth * 2);
325
- const normalWidth = pdf.widthOfString(text, textOptions);
330
+ const spaceWidth = widthOfString(pdf, font, fontSize, " ", textOptions);
331
+ const stringWidth = widthOfString(pdf, font, fontSize, ` ${text} `, textOptions) - spaceWidth * 2;
326
332
  measuredWidth = stringWidth;
327
333
  }
328
334
  else {
329
- measuredWidth = pdf.widthOfString(text, textOptions);
335
+ measuredWidth = widthOfString(pdf, font, fontSize, text, textOptions);
330
336
  }
331
337
  const width = Math.min(availableSize.width, measuredWidth);
332
338
  const lineWidth = textStyle.lineBreak === false ? Infinity : availableSize.width;
333
- const height = pdf.heightOfString(text, {
339
+ const height = heightOfString(pdf, font, fontSize, text, {
334
340
  width: lineWidth,
335
341
  ...textOptions,
336
342
  });
337
343
  return AD.Size.create(width, height, availableSize.width);
338
344
  }
345
+ function widthOfString(pdf, font, fontSize, text, options) {
346
+ const key = JSON.stringify({ font, fontSize, text, options });
347
+ const cached = widthOfStringCache.get(key);
348
+ if (cached !== undefined) {
349
+ return cached;
350
+ }
351
+ pdf.font(font).fontSize(fontSize);
352
+ const width = pdf.widthOfString(text, options);
353
+ widthOfStringCache.set(key, width);
354
+ return width;
355
+ }
356
+ function heightOfString(pdf, font, fontSize, text, options) {
357
+ const key = JSON.stringify({ font, fontSize, text, options });
358
+ const cached = heightOfStringCache.get(key);
359
+ if (cached !== undefined) {
360
+ return cached;
361
+ }
362
+ pdf.font(font).fontSize(fontSize);
363
+ const height = pdf.heightOfString(text, options);
364
+ heightOfStringCache.set(key, height);
365
+ return height;
366
+ }
339
367
  function mergeMaps(maps) {
340
368
  let newMap = new Map();
341
369
  maps.forEach((m) => m.forEach((v, k) => newMap.set(k, v)));
@@ -1 +1 @@
1
- {"version":3,"file":"measure.js","sourceRoot":"","sources":["../../../src/abstract-document-exporters/pdf/measure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"measure.js","sourceRoot":"","sources":["../../../src/abstract-document-exporters/pdf/measure.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "abstract-document",
3
- "version": "17.0.4",
3
+ "version": "17.0.5",
4
4
  "description": "Dynamically create documents using code or JSX and render to any format",
5
5
  "repository": "https://github.com/dividab/abstract-visuals/tree/master/packages/abstract-document",
6
6
  "main": "lib/index.js",
@@ -50,5 +50,5 @@
50
50
  "vite": "^6.0.1",
51
51
  "vitest": "^2.1.6"
52
52
  },
53
- "gitHead": "21e8016ec790760ed7c05325bc67560d49769369"
53
+ "gitHead": "04447890b44cb54b43a6a3c75360f13c5b88c32a"
54
54
  }
@@ -19,7 +19,7 @@ export function create(props: TextRunProps): TextRun {
19
19
  return {
20
20
  type: "TextRun",
21
21
  styleName,
22
- text,
22
+ text: (text ?? "").toString(),
23
23
  style,
24
24
  };
25
25
  }
@@ -5,10 +5,16 @@ import { registerFonts, getFontNameStyle } from "./font.js";
5
5
 
6
6
  //tslint:disable:no-any variable-name
7
7
 
8
+ const widthOfStringCache = new Map<string, number>();
9
+ const heightOfStringCache = new Map<string, number>();
10
+
8
11
  export function measure(pdfKit: PDFKit.PDFDocument, document: AD.AbstractDoc.AbstractDoc): Map<any, AD.Size.Size> {
9
12
  let pdf = new pdfKit();
10
13
  registerFonts((fontName: string, fontSource: AD.Font.FontSource) => pdf.registerFont(fontName, fontSource), document);
11
- return mergeMaps(document.children.map((s) => measureSection(pdf, document, s)));
14
+ const result = mergeMaps(document.children.map((s) => measureSection(pdf, document, s)));
15
+ widthOfStringCache.clear();
16
+ heightOfStringCache.clear();
17
+ return result;
12
18
  }
13
19
 
14
20
  export function measurePages(
@@ -29,7 +35,7 @@ function measureSection(
29
35
  section: AD.Section.Section,
30
36
  separateHeader?: ReadonlyArray<AD.SectionElement.SectionElement>,
31
37
  separateFooter?: ReadonlyArray<AD.SectionElement.SectionElement>,
32
- separateChildren?: ReadonlyArray<AD.SectionElement.SectionElement>,
38
+ separateChildren?: ReadonlyArray<AD.SectionElement.SectionElement>
33
39
  ): Map<any, AD.Size.Size> {
34
40
  const header = separateHeader || section.page.header;
35
41
  const footer = separateFooter || section.page.footer;
@@ -56,16 +62,18 @@ function measureSection(
56
62
 
57
63
  //header and footer sizes for the first page
58
64
  const firstPageHeaderAndFooters = getHeaderAndFooter(section, 1);
59
- const firstPageHeaderAndFootersExtracted: ReadonlyArray<[ReadonlyArray<AD.SectionElement.SectionElement>, AD.LayoutFoundation.LayoutFoundation]> = [
65
+ const firstPageHeaderAndFootersExtracted: ReadonlyArray<
66
+ [ReadonlyArray<AD.SectionElement.SectionElement>, AD.LayoutFoundation.LayoutFoundation]
67
+ > = [
60
68
  [firstPageHeaderAndFooters.header, firstPageHeaderAndFooters.headerMargins],
61
- [firstPageHeaderAndFooters.footer, firstPageHeaderAndFooters.footerMargins]
69
+ [firstPageHeaderAndFooters.footer, firstPageHeaderAndFooters.footerMargins],
62
70
  ];
63
71
  const firstPageHeaderAndFooterSizes = firstPageHeaderAndFootersExtracted.reduce((prev, [sections, margins]) => {
64
72
  const availabelWidth = pageWidth - (margins.left + margins.right);
65
73
  const availableSizes = AD.Size.create(availabelWidth, pageHeight);
66
74
  return [...prev, ...sections.map((e) => measureSectionElement(pdfKit, resources, availableSizes, e))];
67
75
  }, []);
68
-
76
+
69
77
  return mergeMaps([...sectionSizes, ...headerSizes, ...footerSizes, ...firstPageHeaderAndFooterSizes]);
70
78
  }
71
79
 
@@ -166,7 +174,9 @@ function measureParagraph(
166
174
  } else if (hasAtomImage) {
167
175
  paragraphHeight += desiredHeight + currentRowHeight;
168
176
  } else {
169
- paragraphHeight += pdfKit.heightOfString(concatenatedText, {
177
+ const font = getFontNameStyle(style.textStyle);
178
+ const fontSize = AD.TextStyle.calculateFontSize(style.textStyle, 10);
179
+ paragraphHeight += heightOfString(pdfKit, font, fontSize, concatenatedText, {
170
180
  width: textOptions && textOptions.lineBreak === false ? Infinity : availableSize.width,
171
181
  ...textOptions,
172
182
  });
@@ -477,7 +487,7 @@ function measureText(
477
487
  text: string,
478
488
  textStyle: AD.TextStyle.TextStyle,
479
489
  availableSize: AD.Size.Size,
480
- measureWithSpaces?: boolean,
490
+ measureWithSpaces?: boolean
481
491
  ): AD.Size.Size {
482
492
  const font = getFontNameStyle(textStyle);
483
493
  const fontSize = AD.TextStyle.calculateFontSize(textStyle, 10);
@@ -495,24 +505,61 @@ function measureText(
495
505
  };
496
506
 
497
507
  let measuredWidth = 0;
498
- if(measureWithSpaces !== undefined && measureWithSpaces) {
499
- const spaceWidth = pdf.widthOfString(" ", textOptions);
500
- const stringWidth = pdf.widthOfString(` ${text} `, textOptions) - (spaceWidth * 2);
501
- const normalWidth = pdf.widthOfString(text, textOptions);
508
+ if (measureWithSpaces !== undefined && measureWithSpaces) {
509
+ const spaceWidth = widthOfString(pdf, font, fontSize, " ", textOptions);
510
+ const stringWidth = widthOfString(pdf, font, fontSize, ` ${text} `, textOptions) - spaceWidth * 2;
502
511
  measuredWidth = stringWidth;
503
512
  } else {
504
- measuredWidth = pdf.widthOfString(text, textOptions);
513
+ measuredWidth = widthOfString(pdf, font, fontSize, text, textOptions);
505
514
  }
506
515
 
507
516
  const width = Math.min(availableSize.width, measuredWidth);
508
517
  const lineWidth = textStyle.lineBreak === false ? Infinity : availableSize.width;
509
- const height = pdf.heightOfString(text, {
518
+ const height = heightOfString(pdf, font, fontSize, text, {
510
519
  width: lineWidth,
511
520
  ...textOptions,
512
521
  });
513
522
  return AD.Size.create(width, height, availableSize.width);
514
523
  }
515
524
 
525
+ function widthOfString(
526
+ pdf: PDFKit.PDFDocument,
527
+ font: string,
528
+ fontSize: number,
529
+ text: string,
530
+ options: PDFKit.Mixins.TextOptions
531
+ ): number {
532
+ const key = JSON.stringify({ font, fontSize, text, options });
533
+ const cached = widthOfStringCache.get(key);
534
+ if (cached !== undefined) {
535
+ return cached;
536
+ }
537
+ pdf.font(font).fontSize(fontSize);
538
+
539
+ const width = pdf.widthOfString(text, options);
540
+ widthOfStringCache.set(key, width);
541
+ return width;
542
+ }
543
+
544
+ function heightOfString(
545
+ pdf: PDFKit.PDFDocument,
546
+ font: string,
547
+ fontSize: number,
548
+ text: string,
549
+ options: PDFKit.Mixins.TextOptions
550
+ ): number {
551
+ const key = JSON.stringify({ font, fontSize, text, options });
552
+ const cached = heightOfStringCache.get(key);
553
+ if (cached !== undefined) {
554
+ return cached;
555
+ }
556
+ pdf.font(font).fontSize(fontSize);
557
+
558
+ const height = pdf.heightOfString(text, options);
559
+ heightOfStringCache.set(key, height);
560
+ return height;
561
+ }
562
+
516
563
  function mergeMaps(maps: Array<Map<any, AD.Size.Size>>): Map<any, AD.Size.Size> {
517
564
  let newMap = new Map<any, AD.Size.Size>();
518
565
  maps.forEach((m) => m.forEach((v, k) => newMap.set(k, v)));