abstract-document 20.0.4 → 20.1.1
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 +4 -0
- package/lib/abstract-document/abstract-doc.d.ts.map +1 -1
- package/lib/abstract-document/abstract-doc.js +2 -2
- package/lib/abstract-document/atoms/atom.d.ts +3 -3
- package/lib/abstract-document/atoms/atom.d.ts.map +1 -1
- package/lib/abstract-document/default-styles.d.ts.map +1 -1
- package/lib/abstract-document/default-styles.js.map +1 -1
- package/lib/abstract-document/markdown/markdown.d.ts.map +1 -1
- package/lib/abstract-document/markdown/markdown.js +4 -4
- package/lib/abstract-document/markdown/markdown.js.map +1 -1
- package/lib/abstract-document/numberings/numbering-definition.d.ts +2 -2
- package/lib/abstract-document/numberings/numbering-definition.d.ts.map +1 -1
- package/lib/abstract-document/numberings/numbering-level-definition.js +2 -2
- package/lib/abstract-document/page/master-page.d.ts +1 -1
- package/lib/abstract-document/page/master-page.d.ts.map +1 -1
- package/lib/abstract-document/page/master-page.js +1 -1
- package/lib/abstract-document/page/master-page.js.map +1 -1
- package/lib/abstract-document/page/section.d.ts +1 -1
- package/lib/abstract-document/page/section.d.ts.map +1 -1
- package/lib/abstract-document/page/section.js +2 -2
- package/lib/abstract-document/page/section.js.map +1 -1
- package/lib/abstract-document/primitives/font.d.ts +1 -1
- package/lib/abstract-document/primitives/font.d.ts.map +1 -1
- package/lib/abstract-document/primitives/font.js +1 -1
- package/lib/abstract-document/primitives/font.js.map +1 -1
- package/lib/abstract-document/primitives/layout-foundation-color.d.ts.map +1 -1
- package/lib/abstract-document/primitives/layout-foundation-color.js.map +1 -1
- package/lib/abstract-document/primitives/layout-foundation.d.ts.map +1 -1
- package/lib/abstract-document/primitives/layout-foundation.js.map +1 -1
- package/lib/abstract-document/resources.d.ts +4 -3
- package/lib/abstract-document/resources.d.ts.map +1 -1
- package/lib/abstract-document/resources.js +4 -4
- package/lib/abstract-document/resources.js.map +1 -1
- package/lib/abstract-document/section-elements/group.d.ts +1 -1
- package/lib/abstract-document/section-elements/group.d.ts.map +1 -1
- package/lib/abstract-document/section-elements/group.js +2 -2
- package/lib/abstract-document/section-elements/group.js.map +1 -1
- package/lib/abstract-document/section-elements/page-break.d.ts +2 -2
- package/lib/abstract-document/section-elements/page-break.d.ts.map +1 -1
- package/lib/abstract-document/section-elements/page-break.js +1 -2
- package/lib/abstract-document/section-elements/page-break.js.map +1 -1
- package/lib/abstract-document/section-elements/paragraph.d.ts +2 -2
- package/lib/abstract-document/section-elements/paragraph.d.ts.map +1 -1
- package/lib/abstract-document/section-elements/paragraph.js +2 -2
- package/lib/abstract-document/section-elements/paragraph.js.map +1 -1
- package/lib/abstract-document/section-elements/section-element.d.ts +1 -1
- package/lib/abstract-document/section-elements/section-element.d.ts.map +1 -1
- package/lib/abstract-document/section-elements/section-element.js.map +1 -1
- package/lib/abstract-document/section-elements/table.d.ts +1 -1
- package/lib/abstract-document/section-elements/table.d.ts.map +1 -1
- package/lib/abstract-document/section-elements/table.js +2 -2
- package/lib/abstract-document/section-elements/table.js.map +1 -1
- package/lib/abstract-document/styles/group-style.js +3 -3
- package/lib/abstract-document/styles/page-style.d.ts.map +1 -1
- package/lib/abstract-document/styles/page-style.js +3 -7
- package/lib/abstract-document/styles/page-style.js.map +1 -1
- package/lib/abstract-document/styles/paragraph-style.d.ts +1 -1
- package/lib/abstract-document/styles/paragraph-style.d.ts.map +1 -1
- package/lib/abstract-document/styles/paragraph-style.js +5 -5
- package/lib/abstract-document/styles/paragraph-style.js.map +1 -1
- package/lib/abstract-document/styles/style.d.ts.map +1 -1
- package/lib/abstract-document/styles/style.js.map +1 -1
- package/lib/abstract-document/styles/table-cell-style.d.ts +1 -1
- package/lib/abstract-document/styles/table-cell-style.d.ts.map +1 -1
- package/lib/abstract-document/styles/table-cell-style.js +7 -7
- package/lib/abstract-document/styles/table-cell-style.js.map +1 -1
- package/lib/abstract-document/styles/table-style.d.ts +1 -1
- package/lib/abstract-document/styles/table-style.d.ts.map +1 -1
- package/lib/abstract-document/styles/table-style.js +2 -2
- package/lib/abstract-document/styles/table-style.js.map +1 -1
- package/lib/abstract-document/styles/text-style.d.ts.map +1 -1
- package/lib/abstract-document/styles/text-style.js +16 -21
- package/lib/abstract-document/styles/text-style.js.map +1 -1
- package/lib/abstract-document/table/table-cell.js +2 -2
- package/lib/abstract-document/table/table-row.d.ts +2 -3
- package/lib/abstract-document/table/table-row.d.ts.map +1 -1
- package/lib/abstract-document/table/table-row.js +2 -3
- package/lib/abstract-document/table/table-row.js.map +1 -1
- package/lib/abstract-document/types.d.ts.map +1 -1
- package/lib/abstract-document-exporters/docx/document-container.d.ts +5 -5
- package/lib/abstract-document-exporters/docx/document-container.d.ts.map +1 -1
- package/lib/abstract-document-exporters/docx/document-container.js +14 -13
- package/lib/abstract-document-exporters/docx/document-container.js.map +1 -1
- package/lib/abstract-document-exporters/docx/docx-constants.d.ts.map +1 -1
- package/lib/abstract-document-exporters/docx/docx-constants.js +1 -4
- package/lib/abstract-document-exporters/docx/docx-constants.js.map +1 -1
- package/lib/abstract-document-exporters/docx/ref-container.d.ts +8 -10
- package/lib/abstract-document-exporters/docx/ref-container.d.ts.map +1 -1
- package/lib/abstract-document-exporters/docx/ref-container.js +34 -35
- package/lib/abstract-document-exporters/docx/ref-container.js.map +1 -1
- package/lib/abstract-document-exporters/docx/string-utils.d.ts +2 -1
- package/lib/abstract-document-exporters/docx/string-utils.d.ts.map +1 -1
- package/lib/abstract-document-exporters/docx/string-utils.js +6 -4
- package/lib/abstract-document-exporters/docx/string-utils.js.map +1 -1
- package/lib/abstract-document-exporters/docx/xml-writer.d.ts +12 -33
- package/lib/abstract-document-exporters/docx/xml-writer.d.ts.map +1 -1
- package/lib/abstract-document-exporters/docx/xml-writer.js +243 -249
- package/lib/abstract-document-exporters/docx/xml-writer.js.map +1 -1
- package/lib/abstract-document-exporters/docx2/render-image.d.ts +1 -1
- package/lib/abstract-document-exporters/docx2/render-image.d.ts.map +1 -1
- package/lib/abstract-document-exporters/docx2/render-image.js +4 -16
- package/lib/abstract-document-exporters/docx2/render-image.js.map +1 -1
- package/lib/abstract-document-exporters/docx2/render.d.ts.map +1 -1
- package/lib/abstract-document-exporters/docx2/render.js +28 -38
- package/lib/abstract-document-exporters/docx2/render.js.map +1 -1
- package/lib/abstract-document-exporters/pdf/font.d.ts.map +1 -1
- package/lib/abstract-document-exporters/pdf/font.js +13 -14
- package/lib/abstract-document-exporters/pdf/font.js.map +1 -1
- package/lib/abstract-document-exporters/pdf/header-footer.d.ts +8 -0
- package/lib/abstract-document-exporters/pdf/header-footer.d.ts.map +1 -0
- package/lib/abstract-document-exporters/pdf/header-footer.js +31 -0
- package/lib/abstract-document-exporters/pdf/header-footer.js.map +1 -0
- package/lib/abstract-document-exporters/pdf/measure.d.ts +4 -4
- package/lib/abstract-document-exporters/pdf/measure.d.ts.map +1 -1
- package/lib/abstract-document-exporters/pdf/measure.js +29 -31
- package/lib/abstract-document-exporters/pdf/measure.js.map +1 -1
- package/lib/abstract-document-exporters/pdf/page.d.ts +15 -0
- package/lib/abstract-document-exporters/pdf/page.d.ts.map +1 -0
- package/lib/abstract-document-exporters/pdf/page.js +2 -0
- package/lib/abstract-document-exporters/pdf/page.js.map +1 -0
- package/lib/abstract-document-exporters/pdf/paginate.d.ts +2 -20
- package/lib/abstract-document-exporters/pdf/paginate.d.ts.map +1 -1
- package/lib/abstract-document-exporters/pdf/paginate.js +8 -45
- package/lib/abstract-document-exporters/pdf/paginate.js.map +1 -1
- package/lib/abstract-document-exporters/pdf/pre-process.d.ts.map +1 -1
- package/lib/abstract-document-exporters/pdf/pre-process.js +8 -35
- package/lib/abstract-document-exporters/pdf/pre-process.js.map +1 -1
- package/lib/abstract-document-exporters/pdf/render-image.d.ts.map +1 -1
- package/lib/abstract-document-exporters/pdf/render-image.js +24 -34
- package/lib/abstract-document-exporters/pdf/render-image.js.map +1 -1
- package/lib/abstract-document-exporters/pdf/render.d.ts +4 -3
- package/lib/abstract-document-exporters/pdf/render.d.ts.map +1 -1
- package/lib/abstract-document-exporters/pdf/render.js +60 -50
- package/lib/abstract-document-exporters/pdf/render.js.map +1 -1
- package/lib/abstract-document-exporters/pdf/std-fonts.js +1 -1
- package/lib/abstract-document-exporters/pdf/std-fonts.js.map +1 -1
- package/lib/abstract-document-exporters/pdf/textRunRow.d.ts +3 -3
- package/lib/abstract-document-exporters/pdf/textRunRow.d.ts.map +1 -1
- package/lib/abstract-document-exporters/pdf/textRunRow.js +6 -6
- package/lib/abstract-document-exporters/pdf/textRunRow.js.map +1 -1
- package/lib/abstract-document-exporters/pdf/update-refs.d.ts +1 -1
- package/lib/abstract-document-exporters/pdf/update-refs.d.ts.map +1 -1
- package/lib/abstract-document-exporters/pdf/update-refs.js +3 -2
- package/lib/abstract-document-exporters/pdf/update-refs.js.map +1 -1
- package/lib/abstract-document-exporters/shared/get_resources.d.ts.map +1 -1
- package/lib/abstract-document-exporters/shared/get_resources.js.map +1 -1
- package/lib/abstract-document-jsx/index.d.ts +2 -3
- package/lib/abstract-document-jsx/index.d.ts.map +1 -1
- package/lib/abstract-document-jsx/index.js +10 -6
- package/lib/abstract-document-jsx/index.js.map +1 -1
- package/lib/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.d.ts +3 -7
- package/lib/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.d.ts.map +1 -1
- package/lib/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.js +5 -3
- package/lib/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.js.map +1 -1
- package/lib/abstract-document-xml/abstract-doc-of-xml/creator.d.ts.map +1 -1
- package/lib/abstract-document-xml/abstract-doc-of-xml/creator.js +1 -3
- package/lib/abstract-document-xml/abstract-doc-of-xml/creator.js.map +1 -1
- package/lib/abstract-document-xml/abstract-doc-of-xml/custom-elements.d.ts.map +1 -1
- package/lib/abstract-document-xml/abstract-doc-of-xml/custom-elements.js +4 -8
- package/lib/abstract-document-xml/abstract-doc-of-xml/custom-elements.js.map +1 -1
- package/lib/abstract-document-xml/xsd-template/xsd-template.js +2 -2
- package/lib/abstract-document-xml/xsd-template/xsd-template.js.map +1 -1
- package/package.json +22 -22
- package/src/abstract-document/abstract-doc.ts +6 -6
- package/src/abstract-document/atoms/atom.ts +3 -3
- package/src/abstract-document/default-styles.ts +1 -1
- package/src/abstract-document/markdown/markdown.ts +5 -5
- package/src/abstract-document/numberings/numbering-definition.ts +2 -2
- package/src/abstract-document/numberings/numbering-level-definition.ts +2 -2
- package/src/abstract-document/page/master-page.ts +2 -2
- package/src/abstract-document/page/section.ts +3 -3
- package/src/abstract-document/primitives/font.ts +1 -12
- package/src/abstract-document/primitives/layout-foundation-color.ts +1 -4
- package/src/abstract-document/primitives/layout-foundation.ts +1 -4
- package/src/abstract-document/resources.ts +9 -14
- package/src/abstract-document/section-elements/group.ts +3 -3
- package/src/abstract-document/section-elements/page-break.ts +2 -3
- package/src/abstract-document/section-elements/paragraph.ts +4 -4
- package/src/abstract-document/section-elements/section-element.ts +1 -1
- package/src/abstract-document/section-elements/table.ts +3 -3
- package/src/abstract-document/styles/group-style.ts +3 -3
- package/src/abstract-document/styles/page-style.ts +3 -7
- package/src/abstract-document/styles/paragraph-style.ts +6 -14
- package/src/abstract-document/styles/style.ts +1 -5
- package/src/abstract-document/styles/table-cell-style.ts +8 -11
- package/src/abstract-document/styles/table-style.ts +3 -8
- package/src/abstract-document/styles/text-style.ts +16 -21
- package/src/abstract-document/table/table-cell.ts +2 -2
- package/src/abstract-document/table/table-row.ts +3 -4
- package/src/abstract-document/types.ts +0 -1
- package/src/abstract-document-exporters/docx/document-container.ts +24 -13
- package/src/abstract-document-exporters/docx/docx-constants.ts +2 -6
- package/src/abstract-document-exporters/docx/ref-container.ts +48 -41
- package/src/abstract-document-exporters/docx/string-utils.ts +6 -6
- package/src/abstract-document-exporters/docx/xml-writer.ts +261 -266
- package/src/abstract-document-exporters/docx2/render-image.ts +15 -49
- package/src/abstract-document-exporters/docx2/render.ts +64 -139
- package/src/abstract-document-exporters/pdf/font.ts +17 -23
- package/src/abstract-document-exporters/pdf/header-footer.ts +43 -0
- package/src/abstract-document-exporters/pdf/measure.ts +50 -103
- package/src/abstract-document-exporters/pdf/page.ts +16 -0
- package/src/abstract-document-exporters/pdf/paginate.ts +29 -125
- package/src/abstract-document-exporters/pdf/pre-process.ts +11 -47
- package/src/abstract-document-exporters/pdf/render-image.ts +29 -46
- package/src/abstract-document-exporters/pdf/render.ts +84 -129
- package/src/abstract-document-exporters/pdf/std-fonts.ts +1 -1
- package/src/abstract-document-exporters/pdf/textRunRow.ts +12 -23
- package/src/abstract-document-exporters/pdf/update-refs.ts +10 -33
- package/src/abstract-document-exporters/shared/get_resources.ts +4 -4
- package/src/abstract-document-jsx/index.ts +38 -26
- package/src/abstract-document-xml/abstract-doc-of-xml/abstract-doc-of-xml.ts +14 -26
- package/src/abstract-document-xml/abstract-doc-of-xml/creator.ts +10 -28
- package/src/abstract-document-xml/abstract-doc-of-xml/custom-elements.tsx +8 -30
- package/src/abstract-document-xml/xsd-template/xsd-template.ts +2 -2
|
@@ -2,34 +2,7 @@ import { exhaustiveCheck } from "ts-exhaustive-check";
|
|
|
2
2
|
import * as AD from "../../abstract-document/index.js";
|
|
3
3
|
import * as TextStyle from "../../abstract-document/styles/text-style.js";
|
|
4
4
|
|
|
5
|
-
const alphabet = [
|
|
6
|
-
"a",
|
|
7
|
-
"b",
|
|
8
|
-
"c",
|
|
9
|
-
"d",
|
|
10
|
-
"e",
|
|
11
|
-
"f",
|
|
12
|
-
"g",
|
|
13
|
-
"h",
|
|
14
|
-
"i",
|
|
15
|
-
"j",
|
|
16
|
-
"k",
|
|
17
|
-
"l",
|
|
18
|
-
"m",
|
|
19
|
-
"n",
|
|
20
|
-
"o",
|
|
21
|
-
"p",
|
|
22
|
-
"q",
|
|
23
|
-
"r",
|
|
24
|
-
"s",
|
|
25
|
-
"t",
|
|
26
|
-
"u",
|
|
27
|
-
"v",
|
|
28
|
-
"w",
|
|
29
|
-
"x",
|
|
30
|
-
"y",
|
|
31
|
-
"z",
|
|
32
|
-
];
|
|
5
|
+
const alphabet = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
|
|
33
6
|
|
|
34
7
|
const _numberingLevelItems = new Map<string, number>();
|
|
35
8
|
|
|
@@ -84,10 +57,7 @@ function preProcessSectionElement(
|
|
|
84
57
|
}
|
|
85
58
|
}
|
|
86
59
|
|
|
87
|
-
function preProcessParagraph(
|
|
88
|
-
paragraph: AD.Paragraph.Paragraph,
|
|
89
|
-
resources: AD.Resources.Resources
|
|
90
|
-
): Array<AD.SectionElement.SectionElement> {
|
|
60
|
+
function preProcessParagraph(paragraph: AD.Paragraph.Paragraph, resources: AD.Resources.Resources): Array<AD.SectionElement.SectionElement> {
|
|
91
61
|
const adjustedParagraphs = adjustParagraph(paragraph);
|
|
92
62
|
if (paragraph.numbering === undefined || !resources.numberingDefinitions) {
|
|
93
63
|
return adjustedParagraphs;
|
|
@@ -101,7 +71,7 @@ function preProcessParagraph(
|
|
|
101
71
|
if (numbering === "Unordered") {
|
|
102
72
|
numberText = "-";
|
|
103
73
|
} else {
|
|
104
|
-
for (
|
|
74
|
+
for (const levelDefinition of levelDefinitions.filter((l) => l.level > level)) {
|
|
105
75
|
_numberingLevelItems.delete(numbering + "_" + levelDefinition.level.toString());
|
|
106
76
|
}
|
|
107
77
|
|
|
@@ -112,20 +82,20 @@ function preProcessParagraph(
|
|
|
112
82
|
} else if (!_numberingLevelItems.has(key)) {
|
|
113
83
|
_numberingLevelItems.set(key, levelDefinitions[level].start);
|
|
114
84
|
} else if (append !== true) {
|
|
115
|
-
_numberingLevelItems.set(key, (_numberingLevelItems.get(key)
|
|
85
|
+
_numberingLevelItems.set(key, (_numberingLevelItems.get(key) ?? 0) + 1);
|
|
116
86
|
}
|
|
117
87
|
|
|
118
|
-
for (
|
|
88
|
+
for (const levelDefinition of levelDefinitions.filter((l) => l.level <= level)) {
|
|
119
89
|
const numberingLevel = numbering + "_" + levelDefinition.level.toString();
|
|
120
|
-
const currentNumber = _numberingLevelItems.get(numberingLevel)
|
|
90
|
+
const currentNumber = _numberingLevelItems.get(numberingLevel) ?? 0;
|
|
121
91
|
const levelText = generateLevelText(levelDefinition.format, currentNumber);
|
|
122
92
|
const levelKey = "%" + (levelDefinition.level + 1).toString();
|
|
123
93
|
numberText = numberText.replace(levelKey, levelText);
|
|
124
94
|
}
|
|
125
95
|
}
|
|
126
96
|
|
|
127
|
-
|
|
128
|
-
|
|
97
|
+
const rows: Array<AD.TableRow.TableRow> = [];
|
|
98
|
+
const children: Array<AD.TableCell.TableCell> = [];
|
|
129
99
|
|
|
130
100
|
children.push(AD.TableCell.create());
|
|
131
101
|
|
|
@@ -311,7 +281,7 @@ function toChar(num: number): string {
|
|
|
311
281
|
function preProcessTable(table: AD.Table.Table, resources: AD.Resources.Resources): AD.SectionElement.SectionElement {
|
|
312
282
|
const processedHeaders = [];
|
|
313
283
|
const processedChildren = [];
|
|
314
|
-
|
|
284
|
+
const rowSpans: Map<number, AD.TableCell.TableCell> = new Map();
|
|
315
285
|
if (table.headerRows) {
|
|
316
286
|
for (const row of table.headerRows) {
|
|
317
287
|
const header = preProcessTableRow(row, rowSpans, resources);
|
|
@@ -379,16 +349,10 @@ function preProcessTableRow(
|
|
|
379
349
|
|
|
380
350
|
function preProcessTableCell(c: AD.TableCell.TableCell, resources: AD.Resources.Resources): AD.TableCell.TableCell {
|
|
381
351
|
const children = c.children.flatMap((e) => preProcessSectionElement(e, resources));
|
|
382
|
-
return AD.TableCell.create(
|
|
383
|
-
{ styleName: c.styleName, columnSpan: c.columnSpan, rowSpan: c.rowSpan, style: c.style },
|
|
384
|
-
children
|
|
385
|
-
);
|
|
352
|
+
return AD.TableCell.create({ styleName: c.styleName, columnSpan: c.columnSpan, rowSpan: c.rowSpan, style: c.style }, children);
|
|
386
353
|
}
|
|
387
354
|
|
|
388
|
-
function preProcessGroup(
|
|
389
|
-
group: AD.Group.Group,
|
|
390
|
-
parentResources: AD.Resources.Resources
|
|
391
|
-
): Array<AD.SectionElement.SectionElement> {
|
|
355
|
+
function preProcessGroup(group: AD.Group.Group, parentResources: AD.Resources.Resources): Array<AD.SectionElement.SectionElement> {
|
|
392
356
|
const children = group.children.flatMap((e) => preProcessSectionElement(e, parentResources));
|
|
393
357
|
if (group.keepTogether || AD.Resources.hasResources(group) || group.style.position === "absolute") {
|
|
394
358
|
return [
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type * as AbstractImage from "abstract-image";
|
|
2
2
|
import svgToPdfKit from "svg-to-pdfkit";
|
|
3
3
|
import * as AD from "../../abstract-document/index.js";
|
|
4
|
-
import { getFontNameStyle, getFontName, isFontAvailable } from "./font.js";
|
|
5
4
|
import { rawSvgPrefix, toBase64 } from "../shared/base-64.js";
|
|
5
|
+
import { getFontNameStyle, getFontName, isFontAvailable } from "./font.js";
|
|
6
6
|
|
|
7
7
|
export function renderImage(
|
|
8
8
|
resources: AD.Resources.Resources,
|
|
@@ -34,18 +34,9 @@ export function renderImage(
|
|
|
34
34
|
const drawnH = imgH * scale;
|
|
35
35
|
|
|
36
36
|
const offsetX =
|
|
37
|
-
image.horizontalAlignment === "Center"
|
|
38
|
-
? (rect.width - drawnW) / 2
|
|
39
|
-
: image.horizontalAlignment === "Right"
|
|
40
|
-
? rect.width - drawnW
|
|
41
|
-
: 0;
|
|
37
|
+
image.horizontalAlignment === "Center" ? (rect.width - drawnW) / 2 : image.horizontalAlignment === "Right" ? rect.width - drawnW : 0;
|
|
42
38
|
|
|
43
|
-
const offsetY =
|
|
44
|
-
image.verticalAlignment === "Center"
|
|
45
|
-
? (rect.height - drawnH) / 2
|
|
46
|
-
: image.verticalAlignment === "Bottom"
|
|
47
|
-
? rect.height - drawnH
|
|
48
|
-
: 0;
|
|
39
|
+
const offsetY = image.verticalAlignment === "Center" ? (rect.height - drawnH) / 2 : image.verticalAlignment === "Bottom" ? rect.height - drawnH : 0;
|
|
49
40
|
|
|
50
41
|
pdf.save();
|
|
51
42
|
pdf.translate(position.x + offsetX, position.y + offsetY).scale(scale);
|
|
@@ -68,7 +59,7 @@ function abstractComponentToPdf(
|
|
|
68
59
|
case "group":
|
|
69
60
|
component.children.forEach((c) => abstractComponentToPdf(resources, pdf, c, textStyle, circuitBreaker, accScale));
|
|
70
61
|
break;
|
|
71
|
-
case "binaryimage":
|
|
62
|
+
case "binaryimage": {
|
|
72
63
|
const format = component.format.toLowerCase();
|
|
73
64
|
const w = component.bottomRight.x - component.topLeft.x;
|
|
74
65
|
const h = component.bottomRight.y - component.topLeft.y;
|
|
@@ -86,13 +77,7 @@ function abstractComponentToPdf(
|
|
|
86
77
|
);
|
|
87
78
|
pdf.restore();
|
|
88
79
|
} else if (component.data.url.startsWith(rawSvgPrefix)) {
|
|
89
|
-
addWithSvgToPdfKit(
|
|
90
|
-
decodeURIComponent(component.data.url.slice(rawSvgPrefix.length)),
|
|
91
|
-
component,
|
|
92
|
-
pdf,
|
|
93
|
-
resources,
|
|
94
|
-
textStyle
|
|
95
|
-
);
|
|
80
|
+
addWithSvgToPdfKit(decodeURIComponent(component.data.url.slice(rawSvgPrefix.length)), component, pdf, resources, textStyle);
|
|
96
81
|
} else {
|
|
97
82
|
const match = /^data:.+?;base64,(.*)$/.exec(component.data.url);
|
|
98
83
|
if (match) {
|
|
@@ -112,6 +97,7 @@ function abstractComponentToPdf(
|
|
|
112
97
|
addWithSvgToPdfKit(new TextDecoder().decode(component.data.bytes), component, pdf, resources, textStyle);
|
|
113
98
|
}
|
|
114
99
|
break;
|
|
100
|
+
}
|
|
115
101
|
case "subimage": {
|
|
116
102
|
const scaleX = component.size.width / (component.image.size.width || 1);
|
|
117
103
|
const scaleY = component.size.height / (component.image.size.height || 1);
|
|
@@ -119,9 +105,7 @@ function abstractComponentToPdf(
|
|
|
119
105
|
|
|
120
106
|
pdf.save();
|
|
121
107
|
pdf.translate(component.topLeft.x, component.topLeft.y).scale(scale);
|
|
122
|
-
component.image.components.forEach((c) =>
|
|
123
|
-
abstractComponentToPdf(resources, pdf, c, textStyle, circuitBreaker, accScale * scale)
|
|
124
|
-
);
|
|
108
|
+
component.image.components.forEach((c) => abstractComponentToPdf(resources, pdf, c, textStyle, circuitBreaker, accScale * scale));
|
|
125
109
|
pdf.restore();
|
|
126
110
|
break;
|
|
127
111
|
}
|
|
@@ -147,7 +131,7 @@ function abstractComponentToPdf(
|
|
|
147
131
|
applyStrokeDashStyle(pdf, component.strokeDashStyle);
|
|
148
132
|
pdf.stroke(colorToRgb(component.strokeColor));
|
|
149
133
|
break;
|
|
150
|
-
case "text":
|
|
134
|
+
case "text": {
|
|
151
135
|
const font = getFontName(component.fontFamily, component.fontWeight, component.italic);
|
|
152
136
|
if (component.clockwiseRotationDegrees !== 0) {
|
|
153
137
|
pdf.save();
|
|
@@ -159,17 +143,9 @@ function abstractComponentToPdf(
|
|
|
159
143
|
const stringWidth = pdf.widthOfString(component.text);
|
|
160
144
|
const stringHeight = pdf.currentLineHeight();
|
|
161
145
|
const dx =
|
|
162
|
-
component.horizontalGrowthDirection === "left"
|
|
163
|
-
? -stringWidth
|
|
164
|
-
: component.horizontalGrowthDirection === "uniform"
|
|
165
|
-
? -stringWidth * 0.5
|
|
166
|
-
: 0;
|
|
146
|
+
component.horizontalGrowthDirection === "left" ? -stringWidth : component.horizontalGrowthDirection === "uniform" ? -stringWidth * 0.5 : 0;
|
|
167
147
|
const dy =
|
|
168
|
-
component.verticalGrowthDirection === "up"
|
|
169
|
-
? -stringHeight
|
|
170
|
-
: component.verticalGrowthDirection === "uniform"
|
|
171
|
-
? -stringHeight * 0.5
|
|
172
|
-
: 0;
|
|
148
|
+
component.verticalGrowthDirection === "up" ? -stringHeight : component.verticalGrowthDirection === "uniform" ? -stringHeight * 0.5 : 0;
|
|
173
149
|
pdf
|
|
174
150
|
.font(font)
|
|
175
151
|
.fontSize(component.fontSize)
|
|
@@ -179,7 +155,8 @@ function abstractComponentToPdf(
|
|
|
179
155
|
pdf.restore();
|
|
180
156
|
}
|
|
181
157
|
break;
|
|
182
|
-
|
|
158
|
+
}
|
|
159
|
+
case "ellipse": {
|
|
183
160
|
const width = component.bottomRight.x - component.topLeft.x;
|
|
184
161
|
const height = component.bottomRight.y - component.topLeft.y;
|
|
185
162
|
const centerX = component.topLeft.x + width * 0.5;
|
|
@@ -192,6 +169,7 @@ function abstractComponentToPdf(
|
|
|
192
169
|
applyStrokeDashStyle(pdf, component.strokeDashStyle);
|
|
193
170
|
pdf.fillAndStroke(colorToRgb(component.fillColor), colorToRgb(component.strokeColor));
|
|
194
171
|
break;
|
|
172
|
+
}
|
|
195
173
|
case "polygon":
|
|
196
174
|
pdf
|
|
197
175
|
.lineWidth(component.strokeThickness)
|
|
@@ -201,7 +179,7 @@ function abstractComponentToPdf(
|
|
|
201
179
|
applyStrokeDashStyle(pdf, component.strokeDashStyle);
|
|
202
180
|
pdf.fillAndStroke(colorToRgb(component.fillColor), colorToRgb(component.strokeColor));
|
|
203
181
|
break;
|
|
204
|
-
case "rectangle":
|
|
182
|
+
case "rectangle": {
|
|
205
183
|
const rWidth = component.bottomRight.x - component.topLeft.x;
|
|
206
184
|
const rHeight = component.bottomRight.y - component.topLeft.y;
|
|
207
185
|
pdf
|
|
@@ -212,6 +190,7 @@ function abstractComponentToPdf(
|
|
|
212
190
|
applyStrokeDashStyle(pdf, component.strokeDashStyle);
|
|
213
191
|
pdf.fillAndStroke(colorToRgb(component.fillColor), colorToRgb(component.strokeColor));
|
|
214
192
|
break;
|
|
193
|
+
}
|
|
215
194
|
default:
|
|
216
195
|
break;
|
|
217
196
|
}
|
|
@@ -232,15 +211,17 @@ function addWithSvgToPdfKit(
|
|
|
232
211
|
let index = 0;
|
|
233
212
|
while (true) {
|
|
234
213
|
index = svgUpdated.indexOf(t, index);
|
|
235
|
-
if (index === -1)
|
|
236
|
-
|
|
237
|
-
|
|
214
|
+
if (index === -1) {
|
|
215
|
+
break;
|
|
216
|
+
}
|
|
217
|
+
const indexStart = svgUpdated.indexOf('"', index);
|
|
218
|
+
const indexEnd = svgUpdated.indexOf('"', indexStart + 1);
|
|
238
219
|
index = indexEnd;
|
|
239
220
|
|
|
240
221
|
const color = svgUpdated.substring(indexStart, indexEnd);
|
|
241
|
-
if (color !== color.toLowerCase() && color.toLowerCase().indexOf("url(") === -1)
|
|
242
|
-
svgUpdated =
|
|
243
|
-
|
|
222
|
+
if (color !== color.toLowerCase() && color.toLowerCase().indexOf("url(") === -1) {
|
|
223
|
+
svgUpdated = svgUpdated.substring(0, indexStart) + color.toLowerCase() + svgUpdated.substring(indexEnd, svgUpdated.length);
|
|
224
|
+
}
|
|
244
225
|
}
|
|
245
226
|
});
|
|
246
227
|
|
|
@@ -248,9 +229,11 @@ function addWithSvgToPdfKit(
|
|
|
248
229
|
let index = 0;
|
|
249
230
|
while (true) {
|
|
250
231
|
index = svgUpdated.indexOf(t, index);
|
|
251
|
-
if (index === -1)
|
|
252
|
-
|
|
253
|
-
|
|
232
|
+
if (index === -1) {
|
|
233
|
+
break;
|
|
234
|
+
}
|
|
235
|
+
const indexStart = svgUpdated.indexOf('"', index) + 1;
|
|
236
|
+
const indexEnd = svgUpdated.indexOf('"', indexStart);
|
|
254
237
|
index = indexEnd;
|
|
255
238
|
|
|
256
239
|
let dasharray = svgUpdated.substring(indexStart, indexEnd);
|
|
@@ -428,5 +411,5 @@ function applyStrokeDashStyle(pdf: PDFKit.PDFDocument, dashStyle: AbstractImage.
|
|
|
428
411
|
}
|
|
429
412
|
}
|
|
430
413
|
|
|
431
|
-
(pdf as { dash: (length: number | ReadonlyArray<number>, option:
|
|
414
|
+
(pdf as { dash: (length: number | ReadonlyArray<number>, option: { phase: number }) => PDFKit.PDFDocument }).dash(dashes, { phase: phase });
|
|
432
415
|
}
|