modern-pdf-lib 0.26.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.
Files changed (110) hide show
  1. package/README.md +16 -3
  2. package/dist/{batchOptimize-C1W3O68Q.cjs → batchOptimize-CXC9gNqD.cjs} +55 -55
  3. package/dist/{batchOptimize-BCJEEN8J.mjs → batchOptimize-CjLGD5ie.mjs} +25 -25
  4. package/dist/{bridge-DMEuGtfn.cjs → bridge-ByvzPu5h.cjs} +29 -31
  5. package/dist/{bridge-DaS-gzEd.mjs → bridge-ZD6O6QQa.mjs} +4 -5
  6. package/dist/browser.cjs +245 -154
  7. package/dist/browser.d.cts +166 -166
  8. package/dist/browser.d.cts.map +1 -1
  9. package/dist/browser.d.mts +166 -166
  10. package/dist/browser.d.mts.map +1 -1
  11. package/dist/browser.mjs +15 -19
  12. package/dist/cli/index.cjs +7 -7
  13. package/dist/cli/index.mjs +8 -8
  14. package/dist/{compressionAnalysis-CwknBtqx.mjs → compressionAnalysis-BgKy45pA.mjs} +55 -69
  15. package/dist/{compressionAnalysis-Ch7t-HXn.d.mts → compressionAnalysis-CDOp_vPr.d.mts} +136 -136
  16. package/dist/compressionAnalysis-CDOp_vPr.d.mts.map +1 -0
  17. package/dist/{compressionAnalysis-B-FPzgzw.cjs → compressionAnalysis-Djv-Zvcd.cjs} +85 -99
  18. package/dist/{compressionAnalysis-Dgv1TtHJ.d.cts → compressionAnalysis-UfmonqbM.d.cts} +136 -136
  19. package/dist/compressionAnalysis-UfmonqbM.d.cts.map +1 -0
  20. package/dist/create.cjs +21 -23
  21. package/dist/create.d.cts +2 -2
  22. package/dist/create.d.mts +2 -2
  23. package/dist/create.mjs +3 -5
  24. package/dist/{deduplicateImages-DIon68zB.mjs → deduplicateImages-BTCyAPfJ.mjs} +4 -5
  25. package/dist/{deduplicateImages-cKsnD6Ep.cjs → deduplicateImages-CaGgaqyS.cjs} +14 -15
  26. package/dist/{fieldAppearance-C8PoLFSc.d.mts → fieldAppearance-Df1262CT.d.cts} +44 -44
  27. package/dist/fieldAppearance-Df1262CT.d.cts.map +1 -0
  28. package/dist/{fieldAppearance-CdiGFG5e.d.cts → fieldAppearance-_CZdoUCD.d.mts} +44 -44
  29. package/dist/fieldAppearance-_CZdoUCD.d.mts.map +1 -0
  30. package/dist/fontEmbed-DGiZS0h2.d.cts +677 -0
  31. package/dist/fontEmbed-DGiZS0h2.d.cts.map +1 -0
  32. package/dist/fontEmbed-DtA_riGC.d.mts +677 -0
  33. package/dist/fontEmbed-DtA_riGC.d.mts.map +1 -0
  34. package/dist/forms.cjs +3 -4
  35. package/dist/forms.d.cts +2 -2
  36. package/dist/forms.d.mts +2 -2
  37. package/dist/forms.mjs +2 -3
  38. package/dist/{grayscaleDetect-C6kFF3dk.mjs → grayscaleDetect-6GJrgBRT.mjs} +3 -3
  39. package/dist/{grayscaleDetect-C2m-eEXR.cjs → grayscaleDetect-DAUqxjgR.cjs} +13 -14
  40. package/dist/{imageExtract-zEb1gnkb.cjs → imageExtract-DT50Hp_g.cjs} +13 -14
  41. package/dist/{imageExtract-Dnk_Ssv7.mjs → imageExtract-Dapir-ux.mjs} +3 -4
  42. package/dist/index-C1lZe66f.d.mts +8682 -0
  43. package/dist/index-C1lZe66f.d.mts.map +1 -0
  44. package/dist/index-D1SvXWSI.d.cts +8682 -0
  45. package/dist/index-D1SvXWSI.d.cts.map +1 -0
  46. package/dist/index.cjs +245 -153
  47. package/dist/index.d.cts +7 -7
  48. package/dist/index.d.mts +7 -7
  49. package/dist/index.mjs +14 -17
  50. package/dist/{layout-DQh05VP-.cjs → layout-C4vbTlBW.cjs} +184 -134
  51. package/dist/{layout-CrqeJBMI.mjs → layout-lO4x64kY.mjs} +50 -12
  52. package/dist/{loader-CVB-c_3Z.mjs → loader-B1Ix7ozU.mjs} +248 -12
  53. package/dist/{loader-DYCH3n7d.cjs → loader-DR7H0XOf.cjs} +332 -66
  54. package/dist/parse.cjs +7 -8
  55. package/dist/parse.d.cts +3 -3
  56. package/dist/parse.d.mts +3 -3
  57. package/dist/parse.mjs +6 -7
  58. package/dist/pdfDocument-CH2E4UCc.d.mts +5160 -0
  59. package/dist/pdfDocument-CH2E4UCc.d.mts.map +1 -0
  60. package/dist/{pdfDocument-D9uYNSb-.cjs → pdfDocument-C_7mrBCL.cjs} +22409 -11624
  61. package/dist/pdfDocument-CzOipXnw.d.cts +5160 -0
  62. package/dist/pdfDocument-CzOipXnw.d.cts.map +1 -0
  63. package/dist/{pdfDocument-D7aFSQEY.mjs → pdfDocument-DRbT6HZw.mjs} +10830 -855
  64. package/dist/{pdfForm-BpqDGp29.cjs → pdfForm-BVS_do95.cjs} +112 -107
  65. package/dist/pdfForm-Ca86NDWn.d.cts +897 -0
  66. package/dist/pdfForm-Ca86NDWn.d.cts.map +1 -0
  67. package/dist/pdfForm-Ca86NDWn.d.mts +897 -0
  68. package/dist/pdfForm-Ca86NDWn.d.mts.map +1 -0
  69. package/dist/{pdfForm-C3mC9FoQ.mjs → pdfForm-CfLnlsj-.mjs} +22 -17
  70. package/dist/{pdfObjects-1veop1_d.cjs → pdfObjects-BcPlSI0a.cjs} +62 -53
  71. package/dist/{pdfObjects-uEsWlfzU.mjs → pdfObjects-CB7TEdbW.mjs} +12 -2
  72. package/dist/rolldown-runtime-ak5kbic3.cjs +18 -0
  73. package/dist/{src-lFqJHb1C.cjs → src-C-IDXuvi.cjs} +8692 -1916
  74. package/dist/{src-QZWP21qF.mjs → src-DJaD-bJ2.mjs} +7278 -982
  75. package/dist/{streamDecode-Bj568Nc9.mjs → streamDecode-BamENT3k.mjs} +129 -150
  76. package/dist/{streamDecode-CvgErkFu.cjs → streamDecode-DcaZz309.cjs} +139 -160
  77. package/package.json +25 -22
  78. package/dist/compressionAnalysis-Ch7t-HXn.d.mts.map +0 -1
  79. package/dist/compressionAnalysis-Dgv1TtHJ.d.cts.map +0 -1
  80. package/dist/fflateAdapter-DuNiByKx.mjs +0 -196
  81. package/dist/fflateAdapter-LTAeAhaD.cjs +0 -207
  82. package/dist/fieldAppearance-C8PoLFSc.d.mts.map +0 -1
  83. package/dist/fieldAppearance-CdiGFG5e.d.cts.map +0 -1
  84. package/dist/fontEmbed-3YhUPLFj.d.cts +0 -659
  85. package/dist/fontEmbed-3YhUPLFj.d.cts.map +0 -1
  86. package/dist/fontEmbed-DlVnVCZU.d.mts +0 -659
  87. package/dist/fontEmbed-DlVnVCZU.d.mts.map +0 -1
  88. package/dist/fontSubset-5SLWMmEw.cjs +0 -518
  89. package/dist/fontSubset-BGFDIMmT.mjs +0 -495
  90. package/dist/index-B4S61WjK.d.mts +0 -6507
  91. package/dist/index-B4S61WjK.d.mts.map +0 -1
  92. package/dist/index-xfJP6Ycm.d.cts +0 -6507
  93. package/dist/index-xfJP6Ycm.d.cts.map +0 -1
  94. package/dist/libdeflateWasm-CcA1W04G.mjs +0 -220
  95. package/dist/libdeflateWasm-DLw-I1CY.cjs +0 -237
  96. package/dist/pdfCatalog-Bqq4FiLn.cjs +0 -174
  97. package/dist/pdfCatalog-CnKMAtIo.mjs +0 -139
  98. package/dist/pdfDocument-Bc_vAO74.d.cts +0 -4758
  99. package/dist/pdfDocument-Bc_vAO74.d.cts.map +0 -1
  100. package/dist/pdfDocument-Bi-NoyXv.d.mts +0 -4758
  101. package/dist/pdfDocument-Bi-NoyXv.d.mts.map +0 -1
  102. package/dist/pdfForm-BiyNtYem.d.mts +0 -905
  103. package/dist/pdfForm-BiyNtYem.d.mts.map +0 -1
  104. package/dist/pdfForm-SOXJ72LW.d.cts +0 -905
  105. package/dist/pdfForm-SOXJ72LW.d.cts.map +0 -1
  106. package/dist/pdfPage-BJIE5hc6.mjs +0 -8180
  107. package/dist/pdfPage-C_tjEjj1.cjs +0 -8893
  108. package/dist/pngEmbed-CGi7cym7.mjs +0 -552
  109. package/dist/pngEmbed-CTn9IeNB.cjs +0 -563
  110. package/dist/rolldown-runtime-CKhH4XqG.cjs +0 -24
@@ -1,174 +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
- if (page.tabOrder !== void 0) pageDict.set("/Tabs", require_pdfObjects.PdfName.of(page.tabOrder));
93
- registry.registerWithRef(page.pageRef, pageDict);
94
- kids.push(page.pageRef);
95
- }
96
- const pagesDict = new require_pdfObjects.PdfDict();
97
- pagesDict.set("/Type", require_pdfObjects.PdfName.of("Pages"));
98
- pagesDict.set("/Kids", kids);
99
- pagesDict.set("/Count", require_pdfObjects.PdfNumber.of(pages.length));
100
- registry.assign(pagesRef, pagesDict);
101
- return pagesRef;
102
- }
103
- /**
104
- * Build the `/Catalog` dictionary.
105
- *
106
- * @param pagesRef Indirect reference to the root `/Pages` node.
107
- * @param registry Object registry.
108
- * @param options Optional catalog-level settings.
109
- * @returns The indirect reference to the `/Catalog` dict.
110
- */
111
- function buildCatalog(pagesRef, registry, options) {
112
- const catalog = new require_pdfObjects.PdfDict();
113
- catalog.set("/Type", require_pdfObjects.PdfName.of("Catalog"));
114
- catalog.set("/Pages", pagesRef);
115
- if (options?.pageLayout !== void 0) catalog.set("/PageLayout", require_pdfObjects.PdfName.of(options.pageLayout));
116
- if (options?.pageMode !== void 0) catalog.set("/PageMode", require_pdfObjects.PdfName.of(options.pageMode));
117
- if (options?.lang !== void 0) catalog.set("/Lang", require_pdfObjects.PdfString.literal(options.lang));
118
- return registry.register(catalog);
119
- }
120
- /**
121
- * Build the complete document structure.
122
- *
123
- * @param pages Page entries (already have refs allocated).
124
- * @param meta Document metadata.
125
- * @param registry Object registry.
126
- * @param options Optional catalog settings.
127
- */
128
- function buildDocumentStructure(pages, meta, registry, options) {
129
- const pagesRef = buildPageTree(pages, registry);
130
- return {
131
- catalogRef: buildCatalog(pagesRef, registry, options),
132
- infoRef: buildInfoDict(meta, registry),
133
- pagesRef
134
- };
135
- }
136
-
137
- //#endregion
138
- Object.defineProperty(exports, 'buildCatalog', {
139
- enumerable: true,
140
- get: function () {
141
- return buildCatalog;
142
- }
143
- });
144
- Object.defineProperty(exports, 'buildDocumentStructure', {
145
- enumerable: true,
146
- get: function () {
147
- return buildDocumentStructure;
148
- }
149
- });
150
- Object.defineProperty(exports, 'buildInfoDict', {
151
- enumerable: true,
152
- get: function () {
153
- return buildInfoDict;
154
- }
155
- });
156
- Object.defineProperty(exports, 'buildPageTree', {
157
- enumerable: true,
158
- get: function () {
159
- return buildPageTree;
160
- }
161
- });
162
- Object.defineProperty(exports, 'formatPdfDate', {
163
- enumerable: true,
164
- get: function () {
165
- return formatPdfDate;
166
- }
167
- });
168
- Object.defineProperty(exports, 'pdfCatalog_exports', {
169
- enumerable: true,
170
- get: function () {
171
- return pdfCatalog_exports;
172
- }
173
- });
174
- //# sourceMappingURL=pdfCatalog-Bqq4FiLn.cjs.map
@@ -1,139 +0,0 @@
1
- import { Gs as __exportAll } from "./index-B4S61WjK.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
- if (page.tabOrder !== void 0) pageDict.set("/Tabs", PdfName.of(page.tabOrder));
93
- registry.registerWithRef(page.pageRef, pageDict);
94
- kids.push(page.pageRef);
95
- }
96
- const pagesDict = new PdfDict();
97
- pagesDict.set("/Type", PdfName.of("Pages"));
98
- pagesDict.set("/Kids", kids);
99
- pagesDict.set("/Count", PdfNumber.of(pages.length));
100
- registry.assign(pagesRef, pagesDict);
101
- return pagesRef;
102
- }
103
- /**
104
- * Build the `/Catalog` dictionary.
105
- *
106
- * @param pagesRef Indirect reference to the root `/Pages` node.
107
- * @param registry Object registry.
108
- * @param options Optional catalog-level settings.
109
- * @returns The indirect reference to the `/Catalog` dict.
110
- */
111
- function buildCatalog(pagesRef, registry, options) {
112
- const catalog = new PdfDict();
113
- catalog.set("/Type", PdfName.of("Catalog"));
114
- catalog.set("/Pages", pagesRef);
115
- if (options?.pageLayout !== void 0) catalog.set("/PageLayout", PdfName.of(options.pageLayout));
116
- if (options?.pageMode !== void 0) catalog.set("/PageMode", PdfName.of(options.pageMode));
117
- if (options?.lang !== void 0) catalog.set("/Lang", PdfString.literal(options.lang));
118
- return registry.register(catalog);
119
- }
120
- /**
121
- * Build the complete document structure.
122
- *
123
- * @param pages Page entries (already have refs allocated).
124
- * @param meta Document metadata.
125
- * @param registry Object registry.
126
- * @param options Optional catalog settings.
127
- */
128
- function buildDocumentStructure(pages, meta, registry, options) {
129
- const pagesRef = buildPageTree(pages, registry);
130
- return {
131
- catalogRef: buildCatalog(pagesRef, registry, options),
132
- infoRef: buildInfoDict(meta, registry),
133
- pagesRef
134
- };
135
- }
136
-
137
- //#endregion
138
- export { formatPdfDate as a, buildPageTree as i, buildDocumentStructure as n, pdfCatalog_exports as o, buildInfoDict as r, buildCatalog as t };
139
- //# sourceMappingURL=pdfCatalog-CnKMAtIo.mjs.map