modern-pdf-lib 0.26.0 → 0.28.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.
Files changed (113) hide show
  1. package/README.md +33 -16
  2. package/dist/{batchOptimize-C1W3O68Q.cjs → batchOptimize-Ba5ehwoI.cjs} +55 -55
  3. package/dist/{batchOptimize-BCJEEN8J.mjs → batchOptimize-KB1k9LFg.mjs} +25 -25
  4. package/dist/{bridge-DaS-gzEd.mjs → bridge-7dhURZj7.mjs} +4 -5
  5. package/dist/{bridge-DMEuGtfn.cjs → bridge-ByvzPu5h.cjs} +29 -31
  6. package/dist/browser.cjs +291 -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-BEd_745I.mjs} +55 -69
  15. package/dist/{compressionAnalysis-Ch7t-HXn.d.mts → compressionAnalysis-CyBVhRU5.d.cts} +136 -136
  16. package/dist/compressionAnalysis-CyBVhRU5.d.cts.map +1 -0
  17. package/dist/{compressionAnalysis-B-FPzgzw.cjs → compressionAnalysis-DwxVCe4E.cjs} +85 -99
  18. package/dist/{compressionAnalysis-Dgv1TtHJ.d.cts → compressionAnalysis-InMeGrqw.d.mts} +136 -136
  19. package/dist/compressionAnalysis-InMeGrqw.d.mts.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-Ba7RZ_sx.mjs} +4 -5
  25. package/dist/{deduplicateImages-cKsnD6Ep.cjs → deduplicateImages-CYFpiEch.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-DxtdZxUj.d.cts +677 -0
  31. package/dist/fontEmbed-DxtdZxUj.d.cts.map +1 -0
  32. package/dist/fontEmbed-N-VWoZ0F.d.mts +677 -0
  33. package/dist/fontEmbed-N-VWoZ0F.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-DQomHJiA.cjs} +13 -14
  41. package/dist/{imageExtract-Dnk_Ssv7.mjs → imageExtract-DV-zq4h3.mjs} +3 -4
  42. package/dist/index-5Fv1-Z-p.d.mts +10238 -0
  43. package/dist/index-5Fv1-Z-p.d.mts.map +1 -0
  44. package/dist/index-_Onej9Wy.d.cts +10238 -0
  45. package/dist/index-_Onej9Wy.d.cts.map +1 -0
  46. package/dist/index.cjs +291 -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-CrqeJBMI.mjs → layout-D035GpU8.mjs} +50 -12
  51. package/dist/{layout-DQh05VP-.cjs → layout-DiO_3JLh.cjs} +184 -134
  52. package/dist/{loader-DYCH3n7d.cjs → loader-DR7H0XOf.cjs} +332 -66
  53. package/dist/{loader-CVB-c_3Z.mjs → loader-DkrXz-h4.mjs} +248 -12
  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-5Do0LKQh.d.cts +5181 -0
  59. package/dist/pdfDocument-5Do0LKQh.d.cts.map +1 -0
  60. package/dist/{pdfDocument-D7aFSQEY.mjs → pdfDocument-B6czyaVI.mjs} +10874 -871
  61. package/dist/pdfDocument-B_0VSUHL.d.mts +5181 -0
  62. package/dist/pdfDocument-B_0VSUHL.d.mts.map +1 -0
  63. package/dist/{pdfDocument-D9uYNSb-.cjs → pdfDocument-BaQlOkYr.cjs} +20665 -9846
  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-D7D4PA-g.mjs +13 -0
  73. package/dist/rolldown-runtime-ak5kbic3.cjs +18 -0
  74. package/dist/src-BOzRFaEE.mjs +27888 -0
  75. package/dist/src-vNbsqoIy.cjs +29669 -0
  76. package/dist/{streamDecode-Bj568Nc9.mjs → streamDecode-DCpgTocN.mjs} +143 -151
  77. package/dist/{streamDecode-CvgErkFu.cjs → streamDecode-kQ-REV7v.cjs} +164 -160
  78. package/package.json +33 -24
  79. package/dist/compressionAnalysis-Ch7t-HXn.d.mts.map +0 -1
  80. package/dist/compressionAnalysis-Dgv1TtHJ.d.cts.map +0 -1
  81. package/dist/fflateAdapter-DuNiByKx.mjs +0 -196
  82. package/dist/fflateAdapter-LTAeAhaD.cjs +0 -207
  83. package/dist/fieldAppearance-C8PoLFSc.d.mts.map +0 -1
  84. package/dist/fieldAppearance-CdiGFG5e.d.cts.map +0 -1
  85. package/dist/fontEmbed-3YhUPLFj.d.cts +0 -659
  86. package/dist/fontEmbed-3YhUPLFj.d.cts.map +0 -1
  87. package/dist/fontEmbed-DlVnVCZU.d.mts +0 -659
  88. package/dist/fontEmbed-DlVnVCZU.d.mts.map +0 -1
  89. package/dist/fontSubset-5SLWMmEw.cjs +0 -518
  90. package/dist/fontSubset-BGFDIMmT.mjs +0 -495
  91. package/dist/index-B4S61WjK.d.mts +0 -6507
  92. package/dist/index-B4S61WjK.d.mts.map +0 -1
  93. package/dist/index-xfJP6Ycm.d.cts +0 -6507
  94. package/dist/index-xfJP6Ycm.d.cts.map +0 -1
  95. package/dist/libdeflateWasm-CcA1W04G.mjs +0 -220
  96. package/dist/libdeflateWasm-DLw-I1CY.cjs +0 -237
  97. package/dist/pdfCatalog-Bqq4FiLn.cjs +0 -174
  98. package/dist/pdfCatalog-CnKMAtIo.mjs +0 -139
  99. package/dist/pdfDocument-Bc_vAO74.d.cts +0 -4758
  100. package/dist/pdfDocument-Bc_vAO74.d.cts.map +0 -1
  101. package/dist/pdfDocument-Bi-NoyXv.d.mts +0 -4758
  102. package/dist/pdfDocument-Bi-NoyXv.d.mts.map +0 -1
  103. package/dist/pdfForm-BiyNtYem.d.mts +0 -905
  104. package/dist/pdfForm-BiyNtYem.d.mts.map +0 -1
  105. package/dist/pdfForm-SOXJ72LW.d.cts +0 -905
  106. package/dist/pdfForm-SOXJ72LW.d.cts.map +0 -1
  107. package/dist/pdfPage-BJIE5hc6.mjs +0 -8180
  108. package/dist/pdfPage-C_tjEjj1.cjs +0 -8893
  109. package/dist/pngEmbed-CGi7cym7.mjs +0 -552
  110. package/dist/pngEmbed-CTn9IeNB.cjs +0 -563
  111. package/dist/rolldown-runtime-CKhH4XqG.cjs +0 -24
  112. package/dist/src-QZWP21qF.mjs +0 -16243
  113. package/dist/src-lFqJHb1C.cjs +0 -17274
@@ -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