modern-pdf-lib 0.25.0 → 0.28.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/README.md +16 -3
- package/dist/{batchOptimize-Ba_pWw71.cjs → batchOptimize-CXC9gNqD.cjs} +55 -55
- package/dist/{batchOptimize-DtRwBOqR.mjs → batchOptimize-CjLGD5ie.mjs} +25 -25
- package/dist/{bridge-DYCQzxF7.cjs → bridge-ByvzPu5h.cjs} +29 -31
- package/dist/{bridge-CcivG_Sm.mjs → bridge-ZD6O6QQa.mjs} +4 -5
- package/dist/browser.cjs +263 -151
- package/dist/browser.d.cts +166 -166
- package/dist/browser.d.cts.map +1 -1
- package/dist/browser.d.mts +166 -166
- package/dist/browser.d.mts.map +1 -1
- package/dist/browser.mjs +15 -19
- package/dist/cli/index.cjs +7 -7
- package/dist/cli/index.mjs +8 -8
- package/dist/{compressionAnalysis-odbHC7Uk.mjs → compressionAnalysis-BgKy45pA.mjs} +60 -74
- package/dist/{compressionAnalysis-DGs-MqTe.d.mts → compressionAnalysis-CDOp_vPr.d.mts} +136 -136
- package/dist/compressionAnalysis-CDOp_vPr.d.mts.map +1 -0
- package/dist/{compressionAnalysis-B84FPXaQ.cjs → compressionAnalysis-Djv-Zvcd.cjs} +90 -104
- package/dist/{compressionAnalysis-VtYV9Zmq.d.cts → compressionAnalysis-UfmonqbM.d.cts} +136 -136
- package/dist/compressionAnalysis-UfmonqbM.d.cts.map +1 -0
- package/dist/create.cjs +21 -23
- package/dist/create.d.cts +2 -2
- package/dist/create.d.mts +2 -2
- package/dist/create.mjs +3 -5
- package/dist/{deduplicateImages-MfUDPxQz.mjs → deduplicateImages-BTCyAPfJ.mjs} +4 -5
- package/dist/{deduplicateImages-cKsnD6Ep.cjs → deduplicateImages-CaGgaqyS.cjs} +14 -15
- package/dist/{fieldAppearance-C8PoLFSc.d.mts → fieldAppearance-Df1262CT.d.cts} +44 -44
- package/dist/fieldAppearance-Df1262CT.d.cts.map +1 -0
- package/dist/{fieldAppearance-CdiGFG5e.d.cts → fieldAppearance-_CZdoUCD.d.mts} +44 -44
- package/dist/fieldAppearance-_CZdoUCD.d.mts.map +1 -0
- package/dist/fontEmbed-DGiZS0h2.d.cts +677 -0
- package/dist/fontEmbed-DGiZS0h2.d.cts.map +1 -0
- package/dist/fontEmbed-DtA_riGC.d.mts +677 -0
- package/dist/fontEmbed-DtA_riGC.d.mts.map +1 -0
- package/dist/forms.cjs +3 -4
- package/dist/forms.d.cts +2 -2
- package/dist/forms.d.mts +2 -2
- package/dist/forms.mjs +2 -3
- package/dist/{grayscaleDetect-C6kFF3dk.mjs → grayscaleDetect-6GJrgBRT.mjs} +3 -3
- package/dist/{grayscaleDetect-C2m-eEXR.cjs → grayscaleDetect-DAUqxjgR.cjs} +13 -14
- package/dist/{imageExtract-zEb1gnkb.cjs → imageExtract-DT50Hp_g.cjs} +13 -14
- package/dist/{imageExtract-Dnk_Ssv7.mjs → imageExtract-Dapir-ux.mjs} +3 -4
- package/dist/index-C1lZe66f.d.mts +8682 -0
- package/dist/index-C1lZe66f.d.mts.map +1 -0
- package/dist/index-D1SvXWSI.d.cts +8682 -0
- package/dist/index-D1SvXWSI.d.cts.map +1 -0
- package/dist/index.cjs +263 -150
- package/dist/index.d.cts +7 -7
- package/dist/index.d.mts +7 -7
- package/dist/index.mjs +14 -17
- package/dist/{layout-DH61a1iR.cjs → layout-C4vbTlBW.cjs} +184 -134
- package/dist/{layout-D6EUKSP8.mjs → layout-lO4x64kY.mjs} +50 -12
- package/dist/{loader-C7B5dVCI.mjs → loader-B1Ix7ozU.mjs} +259 -13
- package/dist/{loader-I4zdkoWc.cjs → loader-DR7H0XOf.cjs} +343 -67
- package/dist/parse.cjs +7 -8
- package/dist/parse.d.cts +3 -3
- package/dist/parse.d.mts +3 -3
- package/dist/parse.mjs +6 -7
- package/dist/pdfDocument-CH2E4UCc.d.mts +5160 -0
- package/dist/pdfDocument-CH2E4UCc.d.mts.map +1 -0
- package/dist/{pdfDocument-CEbbUP9i.cjs → pdfDocument-C_7mrBCL.cjs} +20493 -9511
- package/dist/pdfDocument-CzOipXnw.d.cts +5160 -0
- package/dist/pdfDocument-CzOipXnw.d.cts.map +1 -0
- package/dist/{pdfDocument-B0_XwS4X.mjs → pdfDocument-DRbT6HZw.mjs} +11017 -863
- package/dist/{pdfForm-9gd40uz9.cjs → pdfForm-BVS_do95.cjs} +113 -102
- package/dist/pdfForm-Ca86NDWn.d.cts +897 -0
- package/dist/pdfForm-Ca86NDWn.d.cts.map +1 -0
- package/dist/pdfForm-Ca86NDWn.d.mts +897 -0
- package/dist/pdfForm-Ca86NDWn.d.mts.map +1 -0
- package/dist/{pdfForm-Cn-cVicP.mjs → pdfForm-CfLnlsj-.mjs} +23 -18
- package/dist/{pdfObjects-1veop1_d.cjs → pdfObjects-BcPlSI0a.cjs} +62 -53
- package/dist/{pdfObjects-uEsWlfzU.mjs → pdfObjects-CB7TEdbW.mjs} +12 -2
- package/dist/rolldown-runtime-ak5kbic3.cjs +18 -0
- package/dist/{src-B1iDGLCL.cjs → src-C-IDXuvi.cjs} +9886 -1421
- package/dist/{src-Db6Qknoz.mjs → src-DJaD-bJ2.mjs} +8392 -515
- package/dist/{streamDecode-Bj568Nc9.mjs → streamDecode-BamENT3k.mjs} +129 -150
- package/dist/{streamDecode-CvgErkFu.cjs → streamDecode-DcaZz309.cjs} +139 -160
- package/package.json +26 -22
- package/dist/compressionAnalysis-DGs-MqTe.d.mts.map +0 -1
- package/dist/compressionAnalysis-VtYV9Zmq.d.cts.map +0 -1
- package/dist/fflateAdapter-LTAeAhaD.cjs +0 -207
- package/dist/fflateAdapter-PSiW_ML7.mjs +0 -196
- package/dist/fieldAppearance-C8PoLFSc.d.mts.map +0 -1
- package/dist/fieldAppearance-CdiGFG5e.d.cts.map +0 -1
- package/dist/fontEmbed-BN842wlb.d.cts +0 -659
- package/dist/fontEmbed-BN842wlb.d.cts.map +0 -1
- package/dist/fontEmbed-Dgq5K89o.d.mts +0 -659
- package/dist/fontEmbed-Dgq5K89o.d.mts.map +0 -1
- package/dist/fontSubset-5SLWMmEw.cjs +0 -518
- package/dist/fontSubset-D-vQQems.mjs +0 -495
- package/dist/index-DCSbmXWh.d.mts +0 -5939
- package/dist/index-DCSbmXWh.d.mts.map +0 -1
- package/dist/index-J1W3FdL8.d.cts +0 -5939
- package/dist/index-J1W3FdL8.d.cts.map +0 -1
- package/dist/libdeflateWasm-8b91Vmia.mjs +0 -220
- package/dist/libdeflateWasm-BdiDEJOj.cjs +0 -237
- package/dist/pdfCatalog-3yMIhJtt.mjs +0 -138
- package/dist/pdfCatalog-CYy4NXEY.cjs +0 -173
- package/dist/pdfDocument-BgvEP5Po.d.mts +0 -4673
- package/dist/pdfDocument-BgvEP5Po.d.mts.map +0 -1
- package/dist/pdfDocument-CbU-2TjT.d.cts +0 -4673
- package/dist/pdfDocument-CbU-2TjT.d.cts.map +0 -1
- package/dist/pdfForm-BiyNtYem.d.mts +0 -905
- package/dist/pdfForm-BiyNtYem.d.mts.map +0 -1
- package/dist/pdfForm-SOXJ72LW.d.cts +0 -905
- package/dist/pdfForm-SOXJ72LW.d.cts.map +0 -1
- package/dist/pdfPage-B_d9HmkG.mjs +0 -8015
- package/dist/pdfPage-Cd8jOJp6.cjs +0 -8728
- package/dist/pngEmbed-BWAbEUKF.mjs +0 -552
- package/dist/pngEmbed-D4X4ZN-3.cjs +0 -563
- package/dist/rolldown-runtime-CKhH4XqG.cjs +0 -24
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
import { os as __exportAll } from "./index-DCSbmXWh.d.mts";
|
|
2
|
-
import { c as PdfRef, i as PdfName, o as PdfNumber, r as PdfDict, t as PdfArray, u as PdfString } from "./pdfObjects-uEsWlfzU.mjs";
|
|
3
|
-
|
|
4
|
-
//#region src/core/pdfCatalog.ts
|
|
5
|
-
/**
|
|
6
|
-
* @module core/pdfCatalog
|
|
7
|
-
*
|
|
8
|
-
* Builds the PDF document catalog (`/Catalog`), page tree (`/Pages`),
|
|
9
|
-
* and document information dictionary (`/Info`).
|
|
10
|
-
*
|
|
11
|
-
* Reference: PDF 1.7 spec, §7.7.2 (Document Catalog),
|
|
12
|
-
* §7.7.3 (Page Tree), §14.3.3 (Document Information Dictionary).
|
|
13
|
-
*/
|
|
14
|
-
var pdfCatalog_exports = /* @__PURE__ */ __exportAll({
|
|
15
|
-
buildCatalog: () => buildCatalog,
|
|
16
|
-
buildDocumentStructure: () => buildDocumentStructure,
|
|
17
|
-
buildInfoDict: () => buildInfoDict,
|
|
18
|
-
buildPageTree: () => buildPageTree,
|
|
19
|
-
formatPdfDate: () => formatPdfDate
|
|
20
|
-
});
|
|
21
|
-
/**
|
|
22
|
-
* Format a `Date` as a PDF date string.
|
|
23
|
-
*
|
|
24
|
-
* PDF dates follow the form: `D:YYYYMMDDHHmmSSOHH'mm`
|
|
25
|
-
*
|
|
26
|
-
* - `O` is the relationship to UT: `+`, `-`, or `Z`.
|
|
27
|
-
* - The trailing `HH'mm` is the UT offset.
|
|
28
|
-
*
|
|
29
|
-
* @param date A JavaScript Date object.
|
|
30
|
-
* @returns A PDF date string wrapped in parentheses.
|
|
31
|
-
*/
|
|
32
|
-
function formatPdfDate(date) {
|
|
33
|
-
const pad2 = (n) => n.toString().padStart(2, "0");
|
|
34
|
-
return `D:${date.getUTCFullYear()}${pad2(date.getUTCMonth() + 1)}${pad2(date.getUTCDate())}${pad2(date.getUTCHours())}${pad2(date.getUTCMinutes())}${pad2(date.getUTCSeconds())}Z`;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Build the `/Info` dictionary from metadata.
|
|
38
|
-
*
|
|
39
|
-
* @param meta Document metadata.
|
|
40
|
-
* @param registry Object registry — the info dict is registered as an
|
|
41
|
-
* indirect object.
|
|
42
|
-
* @returns The indirect reference to the `/Info` dict.
|
|
43
|
-
*/
|
|
44
|
-
function buildInfoDict(meta, registry) {
|
|
45
|
-
const dict = new PdfDict();
|
|
46
|
-
if (meta.title !== void 0) dict.set("/Title", PdfString.literal(meta.title));
|
|
47
|
-
if (meta.author !== void 0) dict.set("/Author", PdfString.literal(meta.author));
|
|
48
|
-
if (meta.subject !== void 0) dict.set("/Subject", PdfString.literal(meta.subject));
|
|
49
|
-
if (meta.keywords !== void 0) dict.set("/Keywords", PdfString.literal(meta.keywords));
|
|
50
|
-
if (meta.creator !== void 0) dict.set("/Creator", PdfString.literal(meta.creator));
|
|
51
|
-
const producer = meta.producer ?? "modern-pdf-lib";
|
|
52
|
-
dict.set("/Producer", PdfString.literal(producer));
|
|
53
|
-
if (meta.creationDate !== void 0) dict.set("/CreationDate", PdfString.literal(formatPdfDate(meta.creationDate)));
|
|
54
|
-
if (meta.modDate !== void 0) dict.set("/ModDate", PdfString.literal(formatPdfDate(meta.modDate)));
|
|
55
|
-
return registry.register(dict);
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Build the `/Pages` tree and individual `/Page` dictionaries.
|
|
59
|
-
*
|
|
60
|
-
* This implementation uses a flat page tree (a single `/Pages` node)
|
|
61
|
-
* which is correct for documents with up to several thousand pages.
|
|
62
|
-
*
|
|
63
|
-
* @param pages Ordered list of page entries.
|
|
64
|
-
* @param registry Object registry.
|
|
65
|
-
* @returns The indirect reference to the root `/Pages` node.
|
|
66
|
-
*/
|
|
67
|
-
function buildPageTree(pages, registry) {
|
|
68
|
-
const pagesRef = registry.allocate();
|
|
69
|
-
const kids = new PdfArray();
|
|
70
|
-
for (const page of pages) {
|
|
71
|
-
const pageDict = new PdfDict();
|
|
72
|
-
pageDict.set("/Type", PdfName.of("Page"));
|
|
73
|
-
pageDict.set("/Parent", pagesRef);
|
|
74
|
-
if (page.mediaBox !== void 0) pageDict.set("/MediaBox", PdfArray.fromNumbers([...page.mediaBox]));
|
|
75
|
-
else pageDict.set("/MediaBox", PdfArray.fromNumbers([
|
|
76
|
-
0,
|
|
77
|
-
0,
|
|
78
|
-
page.width,
|
|
79
|
-
page.height
|
|
80
|
-
]));
|
|
81
|
-
const csRefs = page.contentStreamRefs;
|
|
82
|
-
if (csRefs instanceof PdfRef) pageDict.set("/Contents", csRefs);
|
|
83
|
-
else if (csRefs.length === 1) pageDict.set("/Contents", csRefs[0]);
|
|
84
|
-
else if (csRefs.length > 1) pageDict.set("/Contents", PdfArray.of([...csRefs]));
|
|
85
|
-
pageDict.set("/Resources", page.resources);
|
|
86
|
-
if (page.rotation !== void 0 && page.rotation !== 0) pageDict.set("/Rotate", PdfNumber.of(page.rotation));
|
|
87
|
-
if (page.cropBox !== void 0) pageDict.set("/CropBox", PdfArray.fromNumbers([...page.cropBox]));
|
|
88
|
-
if (page.bleedBox !== void 0) pageDict.set("/BleedBox", PdfArray.fromNumbers([...page.bleedBox]));
|
|
89
|
-
if (page.artBox !== void 0) pageDict.set("/ArtBox", PdfArray.fromNumbers([...page.artBox]));
|
|
90
|
-
if (page.trimBox !== void 0) pageDict.set("/TrimBox", PdfArray.fromNumbers([...page.trimBox]));
|
|
91
|
-
if (page.annotationRefs !== void 0 && page.annotationRefs.length > 0) pageDict.set("/Annots", PdfArray.of([...page.annotationRefs]));
|
|
92
|
-
registry.registerWithRef(page.pageRef, pageDict);
|
|
93
|
-
kids.push(page.pageRef);
|
|
94
|
-
}
|
|
95
|
-
const pagesDict = new PdfDict();
|
|
96
|
-
pagesDict.set("/Type", PdfName.of("Pages"));
|
|
97
|
-
pagesDict.set("/Kids", kids);
|
|
98
|
-
pagesDict.set("/Count", PdfNumber.of(pages.length));
|
|
99
|
-
registry.assign(pagesRef, pagesDict);
|
|
100
|
-
return pagesRef;
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Build the `/Catalog` dictionary.
|
|
104
|
-
*
|
|
105
|
-
* @param pagesRef Indirect reference to the root `/Pages` node.
|
|
106
|
-
* @param registry Object registry.
|
|
107
|
-
* @param options Optional catalog-level settings.
|
|
108
|
-
* @returns The indirect reference to the `/Catalog` dict.
|
|
109
|
-
*/
|
|
110
|
-
function buildCatalog(pagesRef, registry, options) {
|
|
111
|
-
const catalog = new PdfDict();
|
|
112
|
-
catalog.set("/Type", PdfName.of("Catalog"));
|
|
113
|
-
catalog.set("/Pages", pagesRef);
|
|
114
|
-
if (options?.pageLayout !== void 0) catalog.set("/PageLayout", PdfName.of(options.pageLayout));
|
|
115
|
-
if (options?.pageMode !== void 0) catalog.set("/PageMode", PdfName.of(options.pageMode));
|
|
116
|
-
if (options?.lang !== void 0) catalog.set("/Lang", PdfString.literal(options.lang));
|
|
117
|
-
return registry.register(catalog);
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Build the complete document structure.
|
|
121
|
-
*
|
|
122
|
-
* @param pages Page entries (already have refs allocated).
|
|
123
|
-
* @param meta Document metadata.
|
|
124
|
-
* @param registry Object registry.
|
|
125
|
-
* @param options Optional catalog settings.
|
|
126
|
-
*/
|
|
127
|
-
function buildDocumentStructure(pages, meta, registry, options) {
|
|
128
|
-
const pagesRef = buildPageTree(pages, registry);
|
|
129
|
-
return {
|
|
130
|
-
catalogRef: buildCatalog(pagesRef, registry, options),
|
|
131
|
-
infoRef: buildInfoDict(meta, registry),
|
|
132
|
-
pagesRef
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
//#endregion
|
|
137
|
-
export { formatPdfDate as a, buildPageTree as i, buildDocumentStructure as n, pdfCatalog_exports as o, buildInfoDict as r, buildCatalog as t };
|
|
138
|
-
//# sourceMappingURL=pdfCatalog-3yMIhJtt.mjs.map
|
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
const require_rolldown_runtime = require('./rolldown-runtime-CKhH4XqG.cjs');
|
|
2
|
-
const require_pdfObjects = require('./pdfObjects-1veop1_d.cjs');
|
|
3
|
-
|
|
4
|
-
//#region src/core/pdfCatalog.ts
|
|
5
|
-
/**
|
|
6
|
-
* @module core/pdfCatalog
|
|
7
|
-
*
|
|
8
|
-
* Builds the PDF document catalog (`/Catalog`), page tree (`/Pages`),
|
|
9
|
-
* and document information dictionary (`/Info`).
|
|
10
|
-
*
|
|
11
|
-
* Reference: PDF 1.7 spec, §7.7.2 (Document Catalog),
|
|
12
|
-
* §7.7.3 (Page Tree), §14.3.3 (Document Information Dictionary).
|
|
13
|
-
*/
|
|
14
|
-
var pdfCatalog_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
|
|
15
|
-
buildCatalog: () => buildCatalog,
|
|
16
|
-
buildDocumentStructure: () => buildDocumentStructure,
|
|
17
|
-
buildInfoDict: () => buildInfoDict,
|
|
18
|
-
buildPageTree: () => buildPageTree,
|
|
19
|
-
formatPdfDate: () => formatPdfDate
|
|
20
|
-
});
|
|
21
|
-
/**
|
|
22
|
-
* Format a `Date` as a PDF date string.
|
|
23
|
-
*
|
|
24
|
-
* PDF dates follow the form: `D:YYYYMMDDHHmmSSOHH'mm`
|
|
25
|
-
*
|
|
26
|
-
* - `O` is the relationship to UT: `+`, `-`, or `Z`.
|
|
27
|
-
* - The trailing `HH'mm` is the UT offset.
|
|
28
|
-
*
|
|
29
|
-
* @param date A JavaScript Date object.
|
|
30
|
-
* @returns A PDF date string wrapped in parentheses.
|
|
31
|
-
*/
|
|
32
|
-
function formatPdfDate(date) {
|
|
33
|
-
const pad2 = (n) => n.toString().padStart(2, "0");
|
|
34
|
-
return `D:${date.getUTCFullYear()}${pad2(date.getUTCMonth() + 1)}${pad2(date.getUTCDate())}${pad2(date.getUTCHours())}${pad2(date.getUTCMinutes())}${pad2(date.getUTCSeconds())}Z`;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Build the `/Info` dictionary from metadata.
|
|
38
|
-
*
|
|
39
|
-
* @param meta Document metadata.
|
|
40
|
-
* @param registry Object registry — the info dict is registered as an
|
|
41
|
-
* indirect object.
|
|
42
|
-
* @returns The indirect reference to the `/Info` dict.
|
|
43
|
-
*/
|
|
44
|
-
function buildInfoDict(meta, registry) {
|
|
45
|
-
const dict = new require_pdfObjects.PdfDict();
|
|
46
|
-
if (meta.title !== void 0) dict.set("/Title", require_pdfObjects.PdfString.literal(meta.title));
|
|
47
|
-
if (meta.author !== void 0) dict.set("/Author", require_pdfObjects.PdfString.literal(meta.author));
|
|
48
|
-
if (meta.subject !== void 0) dict.set("/Subject", require_pdfObjects.PdfString.literal(meta.subject));
|
|
49
|
-
if (meta.keywords !== void 0) dict.set("/Keywords", require_pdfObjects.PdfString.literal(meta.keywords));
|
|
50
|
-
if (meta.creator !== void 0) dict.set("/Creator", require_pdfObjects.PdfString.literal(meta.creator));
|
|
51
|
-
const producer = meta.producer ?? "modern-pdf-lib";
|
|
52
|
-
dict.set("/Producer", require_pdfObjects.PdfString.literal(producer));
|
|
53
|
-
if (meta.creationDate !== void 0) dict.set("/CreationDate", require_pdfObjects.PdfString.literal(formatPdfDate(meta.creationDate)));
|
|
54
|
-
if (meta.modDate !== void 0) dict.set("/ModDate", require_pdfObjects.PdfString.literal(formatPdfDate(meta.modDate)));
|
|
55
|
-
return registry.register(dict);
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Build the `/Pages` tree and individual `/Page` dictionaries.
|
|
59
|
-
*
|
|
60
|
-
* This implementation uses a flat page tree (a single `/Pages` node)
|
|
61
|
-
* which is correct for documents with up to several thousand pages.
|
|
62
|
-
*
|
|
63
|
-
* @param pages Ordered list of page entries.
|
|
64
|
-
* @param registry Object registry.
|
|
65
|
-
* @returns The indirect reference to the root `/Pages` node.
|
|
66
|
-
*/
|
|
67
|
-
function buildPageTree(pages, registry) {
|
|
68
|
-
const pagesRef = registry.allocate();
|
|
69
|
-
const kids = new require_pdfObjects.PdfArray();
|
|
70
|
-
for (const page of pages) {
|
|
71
|
-
const pageDict = new require_pdfObjects.PdfDict();
|
|
72
|
-
pageDict.set("/Type", require_pdfObjects.PdfName.of("Page"));
|
|
73
|
-
pageDict.set("/Parent", pagesRef);
|
|
74
|
-
if (page.mediaBox !== void 0) pageDict.set("/MediaBox", require_pdfObjects.PdfArray.fromNumbers([...page.mediaBox]));
|
|
75
|
-
else pageDict.set("/MediaBox", require_pdfObjects.PdfArray.fromNumbers([
|
|
76
|
-
0,
|
|
77
|
-
0,
|
|
78
|
-
page.width,
|
|
79
|
-
page.height
|
|
80
|
-
]));
|
|
81
|
-
const csRefs = page.contentStreamRefs;
|
|
82
|
-
if (csRefs instanceof require_pdfObjects.PdfRef) pageDict.set("/Contents", csRefs);
|
|
83
|
-
else if (csRefs.length === 1) pageDict.set("/Contents", csRefs[0]);
|
|
84
|
-
else if (csRefs.length > 1) pageDict.set("/Contents", require_pdfObjects.PdfArray.of([...csRefs]));
|
|
85
|
-
pageDict.set("/Resources", page.resources);
|
|
86
|
-
if (page.rotation !== void 0 && page.rotation !== 0) pageDict.set("/Rotate", require_pdfObjects.PdfNumber.of(page.rotation));
|
|
87
|
-
if (page.cropBox !== void 0) pageDict.set("/CropBox", require_pdfObjects.PdfArray.fromNumbers([...page.cropBox]));
|
|
88
|
-
if (page.bleedBox !== void 0) pageDict.set("/BleedBox", require_pdfObjects.PdfArray.fromNumbers([...page.bleedBox]));
|
|
89
|
-
if (page.artBox !== void 0) pageDict.set("/ArtBox", require_pdfObjects.PdfArray.fromNumbers([...page.artBox]));
|
|
90
|
-
if (page.trimBox !== void 0) pageDict.set("/TrimBox", require_pdfObjects.PdfArray.fromNumbers([...page.trimBox]));
|
|
91
|
-
if (page.annotationRefs !== void 0 && page.annotationRefs.length > 0) pageDict.set("/Annots", require_pdfObjects.PdfArray.of([...page.annotationRefs]));
|
|
92
|
-
registry.registerWithRef(page.pageRef, pageDict);
|
|
93
|
-
kids.push(page.pageRef);
|
|
94
|
-
}
|
|
95
|
-
const pagesDict = new require_pdfObjects.PdfDict();
|
|
96
|
-
pagesDict.set("/Type", require_pdfObjects.PdfName.of("Pages"));
|
|
97
|
-
pagesDict.set("/Kids", kids);
|
|
98
|
-
pagesDict.set("/Count", require_pdfObjects.PdfNumber.of(pages.length));
|
|
99
|
-
registry.assign(pagesRef, pagesDict);
|
|
100
|
-
return pagesRef;
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Build the `/Catalog` dictionary.
|
|
104
|
-
*
|
|
105
|
-
* @param pagesRef Indirect reference to the root `/Pages` node.
|
|
106
|
-
* @param registry Object registry.
|
|
107
|
-
* @param options Optional catalog-level settings.
|
|
108
|
-
* @returns The indirect reference to the `/Catalog` dict.
|
|
109
|
-
*/
|
|
110
|
-
function buildCatalog(pagesRef, registry, options) {
|
|
111
|
-
const catalog = new require_pdfObjects.PdfDict();
|
|
112
|
-
catalog.set("/Type", require_pdfObjects.PdfName.of("Catalog"));
|
|
113
|
-
catalog.set("/Pages", pagesRef);
|
|
114
|
-
if (options?.pageLayout !== void 0) catalog.set("/PageLayout", require_pdfObjects.PdfName.of(options.pageLayout));
|
|
115
|
-
if (options?.pageMode !== void 0) catalog.set("/PageMode", require_pdfObjects.PdfName.of(options.pageMode));
|
|
116
|
-
if (options?.lang !== void 0) catalog.set("/Lang", require_pdfObjects.PdfString.literal(options.lang));
|
|
117
|
-
return registry.register(catalog);
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Build the complete document structure.
|
|
121
|
-
*
|
|
122
|
-
* @param pages Page entries (already have refs allocated).
|
|
123
|
-
* @param meta Document metadata.
|
|
124
|
-
* @param registry Object registry.
|
|
125
|
-
* @param options Optional catalog settings.
|
|
126
|
-
*/
|
|
127
|
-
function buildDocumentStructure(pages, meta, registry, options) {
|
|
128
|
-
const pagesRef = buildPageTree(pages, registry);
|
|
129
|
-
return {
|
|
130
|
-
catalogRef: buildCatalog(pagesRef, registry, options),
|
|
131
|
-
infoRef: buildInfoDict(meta, registry),
|
|
132
|
-
pagesRef
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
//#endregion
|
|
137
|
-
Object.defineProperty(exports, 'buildCatalog', {
|
|
138
|
-
enumerable: true,
|
|
139
|
-
get: function () {
|
|
140
|
-
return buildCatalog;
|
|
141
|
-
}
|
|
142
|
-
});
|
|
143
|
-
Object.defineProperty(exports, 'buildDocumentStructure', {
|
|
144
|
-
enumerable: true,
|
|
145
|
-
get: function () {
|
|
146
|
-
return buildDocumentStructure;
|
|
147
|
-
}
|
|
148
|
-
});
|
|
149
|
-
Object.defineProperty(exports, 'buildInfoDict', {
|
|
150
|
-
enumerable: true,
|
|
151
|
-
get: function () {
|
|
152
|
-
return buildInfoDict;
|
|
153
|
-
}
|
|
154
|
-
});
|
|
155
|
-
Object.defineProperty(exports, 'buildPageTree', {
|
|
156
|
-
enumerable: true,
|
|
157
|
-
get: function () {
|
|
158
|
-
return buildPageTree;
|
|
159
|
-
}
|
|
160
|
-
});
|
|
161
|
-
Object.defineProperty(exports, 'formatPdfDate', {
|
|
162
|
-
enumerable: true,
|
|
163
|
-
get: function () {
|
|
164
|
-
return formatPdfDate;
|
|
165
|
-
}
|
|
166
|
-
});
|
|
167
|
-
Object.defineProperty(exports, 'pdfCatalog_exports', {
|
|
168
|
-
enumerable: true,
|
|
169
|
-
get: function () {
|
|
170
|
-
return pdfCatalog_exports;
|
|
171
|
-
}
|
|
172
|
-
});
|
|
173
|
-
//# sourceMappingURL=pdfCatalog-CYy4NXEY.cjs.map
|