abstract-document 20.0.3 → 20.1.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.
- package/CHANGELOG.md +4 -0
- package/README.md +3 -3
- 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/atoms/line-break.d.ts +1 -1
- package/lib/abstract-document/atoms/line-break.d.ts.map +1 -1
- package/lib/abstract-document/atoms/line-break.js +1 -1
- package/lib/abstract-document/atoms/line-break.js.map +1 -1
- package/lib/abstract-document/atoms/link-target.js +1 -1
- package/lib/abstract-document/atoms/text-run.d.ts.map +1 -1
- package/lib/abstract-document/atoms/text-run.js +1 -0
- package/lib/abstract-document/atoms/text-run.js.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 +5 -5
- 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-format.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 +4 -4
- 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 +1 -1
- package/lib/abstract-document/primitives/layout-foundation.js.map +1 -1
- package/lib/abstract-document/primitives/point.js +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 +17 -22
- 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 -6
- 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 -248
- 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 +5 -17
- 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 +37 -43
- 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 +14 -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 +31 -32
- 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 -44
- 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 +10 -36
- 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 +25 -35
- 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 -49
- package/lib/abstract-document-exporters/pdf/render.js.map +1 -1
- package/lib/abstract-document-exporters/pdf/std-fonts.js +2 -2
- 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 +26 -20
- 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 +6 -4
- 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 +8 -4
- 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 +21 -21
- package/src/abstract-document/abstract-doc.ts +6 -6
- package/src/abstract-document/atoms/atom.ts +3 -3
- package/src/abstract-document/atoms/line-break.ts +1 -1
- package/src/abstract-document/atoms/link-target.ts +1 -1
- package/src/abstract-document/atoms/text-run.ts +1 -0
- package/src/abstract-document/default-styles.ts +1 -1
- package/src/abstract-document/markdown/markdown.ts +7 -7
- package/src/abstract-document/numberings/numbering-definition.ts +2 -2
- package/src/abstract-document/numberings/numbering-format.ts +1 -7
- 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 +5 -8
- package/src/abstract-document/primitives/layout-foundation.ts +2 -5
- package/src/abstract-document/primitives/point.ts +1 -1
- 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 -18
- package/src/abstract-document/styles/table-style.ts +3 -8
- package/src/abstract-document/styles/text-style.ts +31 -36
- 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 -10
- package/src/abstract-document-exporters/docx/xml-writer.ts +261 -265
- package/src/abstract-document-exporters/docx2/render-image.ts +16 -50
- package/src/abstract-document-exporters/docx2/render.ts +68 -121
- package/src/abstract-document-exporters/pdf/font.ts +27 -32
- package/src/abstract-document-exporters/pdf/header-footer.ts +43 -0
- package/src/abstract-document-exporters/pdf/measure.ts +52 -103
- package/src/abstract-document-exporters/pdf/page.ts +16 -0
- package/src/abstract-document-exporters/pdf/paginate.ts +29 -120
- package/src/abstract-document-exporters/pdf/pre-process.ts +13 -48
- package/src/abstract-document-exporters/pdf/render-image.ts +30 -47
- package/src/abstract-document-exporters/pdf/render.ts +84 -128
- package/src/abstract-document-exporters/pdf/std-fonts.ts +2 -2
- package/src/abstract-document-exporters/pdf/textRunRow.ts +100 -77
- 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 +23 -35
- package/src/abstract-document-xml/abstract-doc-of-xml/creator.ts +17 -29
- package/src/abstract-document-xml/abstract-doc-of-xml/custom-elements.tsx +8 -30
- package/src/abstract-document-xml/xsd-template/styles.ts +1 -1
- package/src/abstract-document-xml/xsd-template/xsd-template.ts +2 -2
- package/lib/abstract-document/table/text-row.d.ts +0 -2
- package/lib/abstract-document/table/text-row.d.ts.map +0 -1
- package/lib/abstract-document/table/text-row.js +0 -2
- package/lib/abstract-document/table/text-row.js.map +0 -1
- package/lib/abstract-document-exporters/docx/docx-document-renderer.d.ts +0 -2
- package/lib/abstract-document-exporters/docx/docx-document-renderer.d.ts.map +0 -1
- package/lib/abstract-document-exporters/docx/docx-document-renderer.js +0 -1085
- package/lib/abstract-document-exporters/docx/docx-document-renderer.js.map +0 -1
- package/src/abstract-document/table/text-row.ts +0 -0
- package/src/abstract-document-exporters/docx/docx-document-renderer.ts +0 -1084
|
@@ -1,51 +1,44 @@
|
|
|
1
|
+
// oxlint-disable-next-line import/no-named-as-default -- standard pdfkit import idiom
|
|
2
|
+
import PDFDocument from "pdfkit";
|
|
3
|
+
import { toBlob, toBytes } from "pdfkit/output";
|
|
1
4
|
import * as AD from "../../abstract-document/index.js";
|
|
2
|
-
import {
|
|
5
|
+
import { registerFonts, getFontNameStyle } from "./font.js";
|
|
6
|
+
import { getHeaderAndFooter } from "./header-footer.js";
|
|
3
7
|
import { measure, measurePages } from "./measure.js";
|
|
4
|
-
import type { Page } from "./
|
|
5
|
-
import { paginate
|
|
6
|
-
import {
|
|
8
|
+
import type { Page } from "./page.js";
|
|
9
|
+
import { paginate } from "./paginate.js";
|
|
10
|
+
import { preProcess } from "./pre-process.js";
|
|
7
11
|
import { renderImage } from "./render-image.js";
|
|
8
|
-
import { registerFonts, getFontNameStyle } from "./font.js";
|
|
9
12
|
import { registerDefaultStdFonts } from "./std-fonts.js";
|
|
10
|
-
import { toBlob, toBytes } from "pdfkit/output";
|
|
11
|
-
import PDFDocument from "pdfkit";
|
|
12
13
|
import type { PdfKitAlignment } from "./textRunRow.js";
|
|
13
14
|
import { rowsCombineTextRuns, rowsSplit } from "./textRunRow.js";
|
|
15
|
+
import { updatePageRefs } from "./update-refs.js";
|
|
14
16
|
|
|
15
17
|
export type PdfExportOptions = {
|
|
16
18
|
compress: boolean;
|
|
17
19
|
};
|
|
18
20
|
|
|
19
|
-
export function exportToHTML5Blob(
|
|
20
|
-
doc: AD.AbstractDoc.AbstractDoc,
|
|
21
|
-
options: PdfExportOptions = { compress: false }
|
|
22
|
-
): Promise<Blob> {
|
|
21
|
+
export function exportToHTML5Blob(doc: AD.AbstractDoc.AbstractDoc, options: PdfExportOptions = { compress: false }): Promise<Blob> {
|
|
23
22
|
const pdf = createDocument(options, doc);
|
|
24
23
|
return toBlob(pdf);
|
|
25
24
|
}
|
|
26
25
|
|
|
27
|
-
export function exportToBytes(
|
|
28
|
-
doc: AD.AbstractDoc.AbstractDoc,
|
|
29
|
-
options: PdfExportOptions = { compress: false }
|
|
30
|
-
): Promise<Uint8Array> {
|
|
26
|
+
export function exportToBytes(doc: AD.AbstractDoc.AbstractDoc, options: PdfExportOptions = { compress: false }): Promise<Uint8Array> {
|
|
31
27
|
const pdf = createDocument(options, doc);
|
|
32
28
|
return toBytes(pdf);
|
|
33
29
|
}
|
|
34
30
|
|
|
35
31
|
/**
|
|
36
|
-
* On the client side the stream can be a BlobStream from the blob-stream package.
|
|
37
|
-
*
|
|
32
|
+
* On the client side the stream can be a BlobStream from the blob-stream package. On the server-side the stream can be a file stream from the fs
|
|
33
|
+
* package.
|
|
34
|
+
*
|
|
38
35
|
* @param blobStream
|
|
39
36
|
* @param doc
|
|
40
37
|
* @param options
|
|
41
38
|
*/
|
|
42
|
-
export function exportToStream(
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
options: PdfExportOptions = { compress: false }
|
|
46
|
-
): void {
|
|
47
|
-
let pdf = createDocument(options, doc);
|
|
48
|
-
pdf.pipe(blobStream);
|
|
39
|
+
export function exportToStream(blobStream: unknown, doc: AD.AbstractDoc.AbstractDoc, options: PdfExportOptions = { compress: false }): void {
|
|
40
|
+
const pdf = createDocument(options, doc);
|
|
41
|
+
pdf.pipe(blobStream as NodeJS.WritableStream);
|
|
49
42
|
}
|
|
50
43
|
|
|
51
44
|
function createDocument(options: PdfExportOptions, ad: AD.AbstractDoc.AbstractDoc): PDFKit.PDFDocument {
|
|
@@ -59,19 +52,14 @@ function createDocument(options: PdfExportOptions, ad: AD.AbstractDoc.AbstractDo
|
|
|
59
52
|
const updatedPages = updatePageRefs(pages);
|
|
60
53
|
const pageDesiredSizes = measurePages(PDFDocument, document, updatedPages);
|
|
61
54
|
|
|
62
|
-
for (
|
|
55
|
+
for (const page of updatedPages) {
|
|
63
56
|
renderPage(document, pdf, pageDesiredSizes, page);
|
|
64
57
|
}
|
|
65
58
|
pdf.end();
|
|
66
59
|
return pdf;
|
|
67
60
|
}
|
|
68
61
|
|
|
69
|
-
function renderPage(
|
|
70
|
-
parentResources: AD.Resources.Resources,
|
|
71
|
-
pdfKit: PDFKit.PDFDocument,
|
|
72
|
-
desiredSizes: Map<{}, AD.Size.Size>,
|
|
73
|
-
page: Page
|
|
74
|
-
): void {
|
|
62
|
+
function renderPage(parentResources: AD.Resources.Resources, pdfKit: PDFKit.PDFDocument, desiredSizes: Map<object, AD.Size.Size>, page: Page): void {
|
|
75
63
|
const section = page.section;
|
|
76
64
|
const style = section.page.style;
|
|
77
65
|
const resources = AD.Resources.mergeResources([parentResources, section]);
|
|
@@ -79,8 +67,8 @@ function renderPage(
|
|
|
79
67
|
const contentRect = addPage(pdfKit, page);
|
|
80
68
|
|
|
81
69
|
page.namedDestionations.forEach((dest) => {
|
|
82
|
-
if (
|
|
83
|
-
|
|
70
|
+
if (pdfKit.addNamedDestination) {
|
|
71
|
+
pdfKit.addNamedDestination(dest);
|
|
84
72
|
}
|
|
85
73
|
});
|
|
86
74
|
|
|
@@ -88,7 +76,7 @@ function renderPage(
|
|
|
88
76
|
const headerX = headerMargins.left;
|
|
89
77
|
const headerStart = headerMargins.top;
|
|
90
78
|
let headerY = headerStart;
|
|
91
|
-
for (
|
|
79
|
+
for (const element of page.header) {
|
|
92
80
|
const elementSize = getDesiredSize(element, desiredSizes);
|
|
93
81
|
const isAbsolute = AD.Position.isPositionAbsolute(element);
|
|
94
82
|
renderSectionElement(
|
|
@@ -111,7 +99,7 @@ function renderPage(
|
|
|
111
99
|
const footerX = footerMargins.left;
|
|
112
100
|
const footerStart = pageHeight - (footerHeight - footerMargins.top);
|
|
113
101
|
let footerY = footerStart;
|
|
114
|
-
for (
|
|
102
|
+
for (const element of page.footer) {
|
|
115
103
|
const elementSize = getDesiredSize(element, desiredSizes);
|
|
116
104
|
const isAbsolute = AD.Position.isPositionAbsolute(element);
|
|
117
105
|
renderSectionElement(
|
|
@@ -127,8 +115,7 @@ function renderPage(
|
|
|
127
115
|
}
|
|
128
116
|
|
|
129
117
|
const elementStart = contentRect.y;
|
|
130
|
-
const columnStep =
|
|
131
|
-
contentRect.width / section.page.style.columnLayout.columnCount + section.page.style.columnLayout.columnGap;
|
|
118
|
+
const columnStep = contentRect.width / section.page.style.columnLayout.columnCount + section.page.style.columnLayout.columnGap;
|
|
132
119
|
for (let columnIndex = 0; columnIndex < page.columns.length; columnIndex++) {
|
|
133
120
|
const x = contentRect.x + columnStep * columnIndex;
|
|
134
121
|
let y = elementStart;
|
|
@@ -169,7 +156,7 @@ function addPage(pdf: PDFKit.PDFDocument, page: Page): AD.Rect.Rect {
|
|
|
169
156
|
function renderSectionElement(
|
|
170
157
|
parentResources: AD.Resources.Resources,
|
|
171
158
|
pdf: PDFKit.PDFDocument,
|
|
172
|
-
desiredSizes: Map<
|
|
159
|
+
desiredSizes: Map<object, AD.Size.Size>,
|
|
173
160
|
finalRect: AD.Rect.Rect,
|
|
174
161
|
element: AD.SectionElement.SectionElement
|
|
175
162
|
): void {
|
|
@@ -177,20 +164,22 @@ function renderSectionElement(
|
|
|
177
164
|
switch (element.type) {
|
|
178
165
|
case "Paragraph":
|
|
179
166
|
renderParagraph(resources, pdf, desiredSizes, finalRect, element);
|
|
180
|
-
|
|
167
|
+
break;
|
|
181
168
|
case "Table":
|
|
182
169
|
renderTable(resources, pdf, desiredSizes, finalRect, element);
|
|
183
|
-
|
|
170
|
+
break;
|
|
184
171
|
case "Group":
|
|
185
172
|
renderGroup(resources, pdf, desiredSizes, finalRect, element);
|
|
186
|
-
|
|
173
|
+
break;
|
|
174
|
+
default:
|
|
175
|
+
break;
|
|
187
176
|
}
|
|
188
177
|
}
|
|
189
178
|
|
|
190
179
|
function renderGroup(
|
|
191
180
|
resources: AD.Resources.Resources,
|
|
192
181
|
pdfKit: PDFKit.PDFDocument,
|
|
193
|
-
desiredSizes: Map<
|
|
182
|
+
desiredSizes: Map<object, AD.Size.Size>,
|
|
194
183
|
finalRect: AD.Rect.Rect,
|
|
195
184
|
group: AD.Group.Group
|
|
196
185
|
): void {
|
|
@@ -217,7 +206,7 @@ function renderGroup(
|
|
|
217
206
|
function renderParagraph(
|
|
218
207
|
resources: AD.Resources.Resources,
|
|
219
208
|
pdfKit: PDFKit.PDFDocument,
|
|
220
|
-
desiredSizes: Map<
|
|
209
|
+
desiredSizes: Map<object, AD.Size.Size>,
|
|
221
210
|
finalRect: AD.Rect.Rect,
|
|
222
211
|
paragraph: AD.Paragraph.Paragraph
|
|
223
212
|
): void {
|
|
@@ -231,10 +220,10 @@ function renderParagraph(
|
|
|
231
220
|
const styleMargins = AD.LayoutFoundation.orDefault(style.margins);
|
|
232
221
|
const availableWidth = finalRect.width - (styleMargins.left + styleMargins.right);
|
|
233
222
|
|
|
234
|
-
|
|
223
|
+
const rows: Array<Array<AD.Atom.Atom>> = [];
|
|
235
224
|
let currentRow: Array<AD.Atom.Atom> = [];
|
|
236
225
|
let currentWidth = 0;
|
|
237
|
-
let previousAtomType: string | undefined;
|
|
226
|
+
let previousAtomType: string | undefined = undefined;
|
|
238
227
|
for (const atom of paragraph.children) {
|
|
239
228
|
if (atom.type === "LineBreak") {
|
|
240
229
|
currentRow.push(atom);
|
|
@@ -296,14 +285,7 @@ function renderParagraph(
|
|
|
296
285
|
let newHeight = styleMargins.top + styleMargins.bottom;
|
|
297
286
|
const alignment = parseAlignment(style.alignment);
|
|
298
287
|
const newRows = rowsSplit(rows, availableWidth, desiredSizes, alignment, pdfKit, resources, style.textStyle);
|
|
299
|
-
const { newDesiredSizes, combinedRows } = rowsCombineTextRuns(
|
|
300
|
-
resources,
|
|
301
|
-
pdfKit,
|
|
302
|
-
newRows,
|
|
303
|
-
desiredSizes,
|
|
304
|
-
alignment,
|
|
305
|
-
style.textStyle
|
|
306
|
-
);
|
|
288
|
+
const { newDesiredSizes, combinedRows } = rowsCombineTextRuns(resources, pdfKit, newRows, desiredSizes, alignment, style.textStyle);
|
|
307
289
|
for (let r = 0; r < combinedRows.length; r++) {
|
|
308
290
|
const row = combinedRows[r];
|
|
309
291
|
const isLast = r === combinedRows.length - 1;
|
|
@@ -397,25 +379,15 @@ function renderAtom(
|
|
|
397
379
|
renderImage(resources, pdfKit, finalRect, textStyle, atom);
|
|
398
380
|
return;
|
|
399
381
|
case "HyperLink":
|
|
400
|
-
renderHyperLink(
|
|
401
|
-
resources,
|
|
402
|
-
pdfKit,
|
|
403
|
-
finalRect,
|
|
404
|
-
textStyle,
|
|
405
|
-
atom,
|
|
406
|
-
alignment,
|
|
407
|
-
isFirstAtom,
|
|
408
|
-
isLastAtom,
|
|
409
|
-
availableWidth
|
|
410
|
-
);
|
|
382
|
+
renderHyperLink(resources, pdfKit, finalRect, textStyle, atom, alignment, isFirstAtom, isLastAtom, availableWidth);
|
|
411
383
|
return;
|
|
412
384
|
case "TocSeparator":
|
|
413
385
|
renderTocSeparator(pdfKit, finalRect, textStyle, atom);
|
|
414
|
-
|
|
386
|
+
break;
|
|
415
387
|
case "LinkTarget":
|
|
416
|
-
return;
|
|
417
388
|
case "LineBreak":
|
|
418
|
-
|
|
389
|
+
default:
|
|
390
|
+
break;
|
|
419
391
|
}
|
|
420
392
|
}
|
|
421
393
|
|
|
@@ -429,13 +401,7 @@ function renderTextField(
|
|
|
429
401
|
isFirstAtom: boolean,
|
|
430
402
|
isLastAtom: boolean
|
|
431
403
|
): void {
|
|
432
|
-
const style = AD.Resources.getStyle(
|
|
433
|
-
textStyle,
|
|
434
|
-
textField.style,
|
|
435
|
-
"TextStyle",
|
|
436
|
-
textField.styleName,
|
|
437
|
-
resources
|
|
438
|
-
) as AD.TextStyle.TextStyle;
|
|
404
|
+
const style = AD.Resources.getStyle(textStyle, textField.style, "TextStyle", textField.styleName, resources) as AD.TextStyle.TextStyle;
|
|
439
405
|
switch (textField.fieldType) {
|
|
440
406
|
case "Date":
|
|
441
407
|
drawText(pdfKit, finalRect, style, new Date(Date.now()).toDateString(), alignment, isFirstAtom, isLastAtom);
|
|
@@ -446,7 +412,9 @@ function renderTextField(
|
|
|
446
412
|
if (textField.text) {
|
|
447
413
|
drawText(pdfKit, finalRect, style, textField.text, alignment, isFirstAtom, isLastAtom);
|
|
448
414
|
}
|
|
449
|
-
|
|
415
|
+
break;
|
|
416
|
+
default:
|
|
417
|
+
break;
|
|
450
418
|
}
|
|
451
419
|
}
|
|
452
420
|
|
|
@@ -466,7 +434,7 @@ function renderTextRun(
|
|
|
466
434
|
"TextStyle",
|
|
467
435
|
textRun.styleName,
|
|
468
436
|
resources,
|
|
469
|
-
textRun.nestedStyleNames
|
|
437
|
+
textRun.nestedStyleNames ?? []
|
|
470
438
|
) as AD.TextStyle.TextStyle;
|
|
471
439
|
drawText(pdf, finalRect, style, textRun.text, alignment, isFirstAtom, isLastAtom);
|
|
472
440
|
}
|
|
@@ -482,13 +450,7 @@ function renderHyperLink(
|
|
|
482
450
|
isLastAtom: boolean,
|
|
483
451
|
availableWidth: number
|
|
484
452
|
): void {
|
|
485
|
-
const style = AD.Resources.getStyle(
|
|
486
|
-
textStyle,
|
|
487
|
-
hyperLink.style,
|
|
488
|
-
"TextStyle",
|
|
489
|
-
hyperLink.styleName,
|
|
490
|
-
resources
|
|
491
|
-
) as AD.TextStyle.TextStyle;
|
|
453
|
+
const style = AD.Resources.getStyle(textStyle, hyperLink.style, "TextStyle", hyperLink.styleName, resources) as AD.TextStyle.TextStyle;
|
|
492
454
|
drawHyperLink(pdf, finalRect, style, hyperLink, alignment, isFirstAtom, isLastAtom, availableWidth);
|
|
493
455
|
}
|
|
494
456
|
|
|
@@ -525,7 +487,7 @@ function drawHyperLink(
|
|
|
525
487
|
pdf
|
|
526
488
|
.font(font)
|
|
527
489
|
.fontSize(fontSize)
|
|
528
|
-
.fillColor(textStyle.color
|
|
490
|
+
.fillColor(textStyle.color ?? "blue");
|
|
529
491
|
|
|
530
492
|
applyTextOffset(pdf, textStyle);
|
|
531
493
|
|
|
@@ -538,25 +500,25 @@ function drawHyperLink(
|
|
|
538
500
|
width: availableWidth,
|
|
539
501
|
align: isSingleAtom ? alignment : "left",
|
|
540
502
|
goTo: isInternalLink ? hyperLink.target.substr(1) : undefined,
|
|
541
|
-
indent: textStyle.indent
|
|
503
|
+
indent: textStyle.indent ?? 0,
|
|
542
504
|
continued: alignment !== "left" ? false : !isLastAtom,
|
|
543
|
-
baseline: textStyle.baseline
|
|
505
|
+
baseline: textStyle.baseline ?? "top",
|
|
544
506
|
...(textStyle.characterSpacing !== undefined ? { characterSpacing: textStyle.characterSpacing } : {}),
|
|
545
507
|
...(textStyle.lineGap !== undefined ? { lineGap: textStyle.lineGap } : {}),
|
|
546
508
|
});
|
|
547
|
-
if (textStyle.underline
|
|
509
|
+
if (textStyle.underline ?? true) {
|
|
548
510
|
pdf.underline(xUnderline, finalRect.y + 2, finalRect.width, finalRect.height, { color: "blue" });
|
|
549
511
|
}
|
|
550
512
|
} else {
|
|
551
513
|
pdf.text(hyperLink.text, {
|
|
552
514
|
align: "left",
|
|
553
515
|
goTo: isInternalLink ? hyperLink.target.substr(1) : undefined,
|
|
554
|
-
indent: textStyle.indent
|
|
516
|
+
indent: textStyle.indent ?? 0,
|
|
555
517
|
continued: !isLastAtom,
|
|
556
518
|
...(textStyle.characterSpacing !== undefined ? { characterSpacing: textStyle.characterSpacing } : {}),
|
|
557
519
|
...(textStyle.lineGap !== undefined ? { lineGap: textStyle.lineGap } : {}),
|
|
558
520
|
});
|
|
559
|
-
if (textStyle.underline
|
|
521
|
+
if (textStyle.underline ?? true) {
|
|
560
522
|
pdf.underline(xUnderline, finalRect.y + 2, finalRect.width, finalRect.height, {
|
|
561
523
|
color: "blue",
|
|
562
524
|
});
|
|
@@ -635,17 +597,17 @@ function drawText(
|
|
|
635
597
|
pdf
|
|
636
598
|
.font(font)
|
|
637
599
|
.fontSize(fontSize)
|
|
638
|
-
.fillColor(textStyle.color
|
|
600
|
+
.fillColor(textStyle.color ?? "black", textStyle.opacity ?? 1.0);
|
|
639
601
|
applyTextOffset(pdf, textStyle);
|
|
640
602
|
|
|
641
603
|
switch (alignment) {
|
|
642
604
|
case "justify": {
|
|
643
605
|
pdf.text(text, finalRect.x, finalRect.y, {
|
|
644
606
|
width: Infinity,
|
|
645
|
-
underline: textStyle.underline
|
|
607
|
+
underline: textStyle.underline ?? false,
|
|
646
608
|
continued: false,
|
|
647
|
-
indent: textStyle.indent
|
|
648
|
-
baseline: textStyle.baseline
|
|
609
|
+
indent: textStyle.indent ?? 0,
|
|
610
|
+
baseline: textStyle.baseline ?? "top",
|
|
649
611
|
strike: textStyle.strike,
|
|
650
612
|
...(textStyle.characterSpacing !== undefined ? { characterSpacing: textStyle.characterSpacing } : {}),
|
|
651
613
|
...(textStyle.lineGap !== undefined ? { lineGap: textStyle.lineGap } : {}),
|
|
@@ -657,10 +619,10 @@ function drawText(
|
|
|
657
619
|
if (isFirst) {
|
|
658
620
|
pdf.text(text, finalRect.x, finalRect.y, {
|
|
659
621
|
width: Infinity,
|
|
660
|
-
underline: textStyle.underline
|
|
622
|
+
underline: textStyle.underline ?? false,
|
|
661
623
|
continued: !isEnd,
|
|
662
|
-
indent: textStyle.indent
|
|
663
|
-
baseline: textStyle.baseline
|
|
624
|
+
indent: textStyle.indent ?? 0,
|
|
625
|
+
baseline: textStyle.baseline ?? "top",
|
|
664
626
|
strike: textStyle.strike,
|
|
665
627
|
...(textStyle.characterSpacing !== undefined ? { characterSpacing: textStyle.characterSpacing } : {}),
|
|
666
628
|
...(textStyle.lineGap !== undefined ? { lineGap: textStyle.lineGap } : {}),
|
|
@@ -668,10 +630,10 @@ function drawText(
|
|
|
668
630
|
} else {
|
|
669
631
|
pdf.text(text, {
|
|
670
632
|
width: Infinity,
|
|
671
|
-
underline: textStyle.underline
|
|
633
|
+
underline: textStyle.underline ?? false,
|
|
672
634
|
continued: !isEnd,
|
|
673
|
-
indent: textStyle.indent
|
|
674
|
-
baseline: textStyle.baseline
|
|
635
|
+
indent: textStyle.indent ?? 0,
|
|
636
|
+
baseline: textStyle.baseline ?? "top",
|
|
675
637
|
strike: textStyle.strike,
|
|
676
638
|
...(textStyle.characterSpacing !== undefined ? { characterSpacing: textStyle.characterSpacing } : {}),
|
|
677
639
|
...(textStyle.lineGap !== undefined ? { lineGap: textStyle.lineGap } : {}),
|
|
@@ -692,7 +654,7 @@ function drawDottedLine(
|
|
|
692
654
|
const font = getFontNameStyle(textStyle);
|
|
693
655
|
const fontSize = AD.TextStyle.calculateFontSize(textStyle, 10);
|
|
694
656
|
|
|
695
|
-
const charSpacing = tocSeparator.width
|
|
657
|
+
const charSpacing = tocSeparator.width ?? 5;
|
|
696
658
|
|
|
697
659
|
const oneDotW = pdf.widthOfString(".", {
|
|
698
660
|
width: finalRect.width,
|
|
@@ -713,7 +675,7 @@ function drawDottedLine(
|
|
|
713
675
|
pdf
|
|
714
676
|
.font(font)
|
|
715
677
|
.fontSize(fontSize)
|
|
716
|
-
.fillColor(textStyle.color
|
|
678
|
+
.fillColor(textStyle.color ?? "black");
|
|
717
679
|
|
|
718
680
|
applyTextOffset(pdf, textStyle);
|
|
719
681
|
|
|
@@ -734,26 +696,23 @@ function drawDottedLine(
|
|
|
734
696
|
function renderTable(
|
|
735
697
|
resources: AD.Resources.Resources,
|
|
736
698
|
pdf: PDFKit.PDFDocument,
|
|
737
|
-
desiredSizes: Map<
|
|
699
|
+
desiredSizes: Map<object, AD.Size.Size>,
|
|
738
700
|
finalRect: AD.Rect.Rect,
|
|
739
701
|
table: AD.Table.Table
|
|
740
702
|
): void {
|
|
741
|
-
const style = AD.Resources.getStyle(
|
|
742
|
-
undefined,
|
|
743
|
-
table.style,
|
|
744
|
-
"TableStyle",
|
|
745
|
-
table.styleName,
|
|
746
|
-
resources
|
|
747
|
-
) as AD.TableStyle.TableStyle;
|
|
703
|
+
const style = AD.Resources.getStyle(undefined, table.style, "TableStyle", table.styleName, resources) as AD.TableStyle.TableStyle;
|
|
748
704
|
const styleMargins = AD.LayoutFoundation.orDefault(style.margins);
|
|
749
705
|
const availableWidth = finalRect.width;
|
|
750
706
|
let y = finalRect.y + styleMargins.top;
|
|
751
707
|
const rows = [...table.headerRows, ...table.children];
|
|
752
|
-
for (
|
|
708
|
+
for (const [index, row] of rows.entries()) {
|
|
753
709
|
const rowSize = getDesiredSize(row, desiredSizes);
|
|
754
710
|
let x = finalRect.x + styleMargins.left;
|
|
755
|
-
if (style.alignment === "Center")
|
|
756
|
-
|
|
711
|
+
if (style.alignment === "Center") {
|
|
712
|
+
x += 0.5 * (availableWidth - rowSize.width);
|
|
713
|
+
} else if (style.alignment === "Right") {
|
|
714
|
+
x += availableWidth - rowSize.width;
|
|
715
|
+
}
|
|
757
716
|
const rowRect = AD.Rect.create(x, y, rowSize.width, rowSize.height);
|
|
758
717
|
const isTop = index === 0;
|
|
759
718
|
const isBottom = index === rows.length - 1;
|
|
@@ -765,7 +724,7 @@ function renderTable(
|
|
|
765
724
|
function renderRow(
|
|
766
725
|
resources: AD.Resources.Resources,
|
|
767
726
|
pdf: PDFKit.PDFDocument,
|
|
768
|
-
desiredSizes: Map<
|
|
727
|
+
desiredSizes: Map<object, AD.Size.Size>,
|
|
769
728
|
finalRect: AD.Rect.Rect,
|
|
770
729
|
tableCellStyle: AD.TableCellStyle.TableCellStyle,
|
|
771
730
|
table: AD.Table.Table,
|
|
@@ -801,7 +760,7 @@ function renderRow(
|
|
|
801
760
|
function renderCell(
|
|
802
761
|
resources: AD.Resources.Resources,
|
|
803
762
|
pdf: PDFKit.PDFDocument,
|
|
804
|
-
desiredSizes: Map<
|
|
763
|
+
desiredSizes: Map<object, AD.Size.Size>,
|
|
805
764
|
finalRect: AD.Rect.Rect,
|
|
806
765
|
tableCellStyle: AD.TableCellStyle.TableCellStyle,
|
|
807
766
|
cell: AD.TableCell.TableCell,
|
|
@@ -810,13 +769,7 @@ function renderCell(
|
|
|
810
769
|
isTop: boolean,
|
|
811
770
|
isBottom: boolean
|
|
812
771
|
): void {
|
|
813
|
-
const style = AD.Resources.getStyle(
|
|
814
|
-
tableCellStyle,
|
|
815
|
-
cell.style,
|
|
816
|
-
"TableCellStyle",
|
|
817
|
-
cell.styleName,
|
|
818
|
-
resources
|
|
819
|
-
) as AD.TableCellStyle.TableCellStyle;
|
|
772
|
+
const style = AD.Resources.getStyle(tableCellStyle, cell.style, "TableCellStyle", cell.styleName, resources) as AD.TableCellStyle.TableCellStyle;
|
|
820
773
|
if (style.background) {
|
|
821
774
|
pdf.rect(finalRect.x, finalRect.y, finalRect.width, finalRect.height).fill(style.background);
|
|
822
775
|
}
|
|
@@ -824,15 +777,18 @@ function renderCell(
|
|
|
824
777
|
const borders = AD.LayoutFoundation.orDefault(style.borders);
|
|
825
778
|
const padding = AD.LayoutFoundation.orDefault(style.padding);
|
|
826
779
|
|
|
827
|
-
|
|
780
|
+
const x = finalRect.x + padding.left;
|
|
828
781
|
const availableHeight = finalRect.height;
|
|
829
|
-
|
|
782
|
+
const contentHeight = cell.children
|
|
830
783
|
.map((c) => (AD.Position.isPositionAbsolute(c) ? 0 : getDesiredSize(c, desiredSizes).height))
|
|
831
784
|
.reduce((a, b) => a + b, 0);
|
|
832
785
|
const startY = finalRect.y + padding.top;
|
|
833
786
|
let y = startY;
|
|
834
|
-
if (style.verticalAlignment === "Middle")
|
|
835
|
-
|
|
787
|
+
if (style.verticalAlignment === "Middle") {
|
|
788
|
+
y += 0.5 * (availableHeight - contentHeight - padding.top - padding.bottom);
|
|
789
|
+
} else if (style.verticalAlignment === "Bottom") {
|
|
790
|
+
y += availableHeight - contentHeight - padding.top - padding.bottom;
|
|
791
|
+
}
|
|
836
792
|
|
|
837
793
|
for (const element of cell.children) {
|
|
838
794
|
const elementSize = getDesiredSize(element, desiredSizes);
|
|
@@ -888,7 +844,7 @@ function renderCell(
|
|
|
888
844
|
}
|
|
889
845
|
|
|
890
846
|
function borderColor(style: AD.TableCellStyle.TableCellStyle, edge: "top" | "bottom" | "left" | "right"): string {
|
|
891
|
-
if (style.borderColors
|
|
847
|
+
if (style.borderColors?.[edge]) {
|
|
892
848
|
return style.borderColors[edge];
|
|
893
849
|
}
|
|
894
850
|
if (style.borderColor) {
|
|
@@ -897,7 +853,7 @@ function borderColor(style: AD.TableCellStyle.TableCellStyle, edge: "top" | "bot
|
|
|
897
853
|
return "black";
|
|
898
854
|
}
|
|
899
855
|
|
|
900
|
-
function getDesiredSize(element:
|
|
856
|
+
function getDesiredSize(element: object, desiredSizes: Map<object, AD.Size.Size>): AD.Size.Size {
|
|
901
857
|
const size = desiredSizes.get(element);
|
|
902
858
|
if (size) {
|
|
903
859
|
return size;
|
|
@@ -925,6 +881,6 @@ function resetTextOffset(pdf: PDFKit.PDFDocument, textStyle: AD.TextStyle.TextSt
|
|
|
925
881
|
|
|
926
882
|
function calculateTextOffset(textStyle: AD.TextStyle.TextStyle): number {
|
|
927
883
|
const defaultPosition = textStyle.superScript ? 0.5 : textStyle.subScript ? -0.5 : 0;
|
|
928
|
-
const position = textStyle.verticalPosition
|
|
884
|
+
const position = textStyle.verticalPosition ?? defaultPosition;
|
|
929
885
|
return position;
|
|
930
886
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as PdfkitModule from "pdfkit";
|
|
2
2
|
import Helvetica from "pdfkit/standard-fonts/Helvetica";
|
|
3
3
|
import HelveticaBold from "pdfkit/standard-fonts/HelveticaBold";
|
|
4
|
-
import HelveticaOblique from "pdfkit/standard-fonts/HelveticaOblique";
|
|
5
4
|
import HelveticaBoldOblique from "pdfkit/standard-fonts/HelveticaBoldOblique";
|
|
5
|
+
import HelveticaOblique from "pdfkit/standard-fonts/HelveticaOblique";
|
|
6
6
|
|
|
7
7
|
// pdfkit 0.20's browser build stopped bundling standard font data and requires
|
|
8
8
|
// registering it explicitly via `registerStdFonts` before it's used, or `.font("Helvetica")`
|
|
@@ -14,7 +14,7 @@ const pdfkitExports = PdfkitModule as unknown as {
|
|
|
14
14
|
registerStdFonts?: (...fonts: ReadonlyArray<unknown>) => void;
|
|
15
15
|
};
|
|
16
16
|
|
|
17
|
-
//
|
|
17
|
+
// oxlint-disable-next-line functional/no-let
|
|
18
18
|
let registered = false;
|
|
19
19
|
|
|
20
20
|
export function registerDefaultStdFonts(): void {
|