pdf-oxide 0.3.24 → 0.3.28

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 (271) hide show
  1. package/lib/builders/annotation-builder.d.ts +199 -0
  2. package/lib/builders/annotation-builder.d.ts.map +1 -0
  3. package/lib/builders/annotation-builder.js +318 -0
  4. package/lib/builders/annotation-builder.js.map +1 -0
  5. package/lib/builders/conversion-options-builder.d.ts +107 -0
  6. package/lib/builders/conversion-options-builder.d.ts.map +1 -0
  7. package/lib/builders/conversion-options-builder.js +215 -0
  8. package/lib/builders/conversion-options-builder.js.map +1 -0
  9. package/{src/builders/index.ts → lib/builders/index.d.ts} +1 -1
  10. package/lib/builders/index.d.ts.map +1 -0
  11. package/lib/builders/index.js +12 -0
  12. package/lib/builders/index.js.map +1 -0
  13. package/lib/builders/metadata-builder.d.ts +202 -0
  14. package/lib/builders/metadata-builder.d.ts.map +1 -0
  15. package/lib/builders/metadata-builder.js +286 -0
  16. package/lib/builders/metadata-builder.js.map +1 -0
  17. package/lib/builders/pdf-builder.d.ts +215 -0
  18. package/lib/builders/pdf-builder.d.ts.map +1 -0
  19. package/lib/builders/pdf-builder.js +339 -0
  20. package/lib/builders/pdf-builder.js.map +1 -0
  21. package/lib/builders/search-options-builder.d.ts +74 -0
  22. package/lib/builders/search-options-builder.d.ts.map +1 -0
  23. package/lib/builders/search-options-builder.js +130 -0
  24. package/lib/builders/search-options-builder.js.map +1 -0
  25. package/lib/document-editor-manager.d.ts +140 -0
  26. package/lib/document-editor-manager.d.ts.map +1 -0
  27. package/lib/document-editor-manager.js +257 -0
  28. package/lib/document-editor-manager.js.map +1 -0
  29. package/lib/errors.d.ts +383 -0
  30. package/lib/errors.d.ts.map +1 -0
  31. package/lib/errors.js +1117 -0
  32. package/lib/errors.js.map +1 -0
  33. package/lib/form-field-manager.d.ts +300 -0
  34. package/lib/form-field-manager.d.ts.map +1 -0
  35. package/lib/form-field-manager.js +567 -0
  36. package/lib/form-field-manager.js.map +1 -0
  37. package/lib/hybrid-ml-manager.d.ts +143 -0
  38. package/lib/hybrid-ml-manager.d.ts.map +1 -0
  39. package/lib/hybrid-ml-manager.js +209 -0
  40. package/lib/hybrid-ml-manager.js.map +1 -0
  41. package/lib/index.d.ts +23 -0
  42. package/lib/index.d.ts.map +1 -0
  43. package/lib/index.js +280 -0
  44. package/lib/index.js.map +1 -0
  45. package/lib/managers/accessibility-manager.d.ts +149 -0
  46. package/lib/managers/accessibility-manager.d.ts.map +1 -0
  47. package/lib/managers/accessibility-manager.js +224 -0
  48. package/lib/managers/accessibility-manager.js.map +1 -0
  49. package/lib/managers/annotation-manager.d.ts +220 -0
  50. package/lib/managers/annotation-manager.d.ts.map +1 -0
  51. package/lib/managers/annotation-manager.js +360 -0
  52. package/lib/managers/annotation-manager.js.map +1 -0
  53. package/lib/managers/barcode-manager.d.ts +80 -0
  54. package/lib/managers/barcode-manager.d.ts.map +1 -0
  55. package/lib/managers/barcode-manager.js +226 -0
  56. package/lib/managers/barcode-manager.js.map +1 -0
  57. package/lib/managers/batch-manager.d.ts +186 -0
  58. package/lib/managers/batch-manager.d.ts.map +1 -0
  59. package/lib/managers/batch-manager.js +389 -0
  60. package/lib/managers/batch-manager.js.map +1 -0
  61. package/lib/managers/cache-manager.d.ts +182 -0
  62. package/lib/managers/cache-manager.d.ts.map +1 -0
  63. package/lib/managers/cache-manager.js +387 -0
  64. package/lib/managers/cache-manager.js.map +1 -0
  65. package/lib/managers/compliance-manager.d.ts +104 -0
  66. package/lib/managers/compliance-manager.d.ts.map +1 -0
  67. package/lib/managers/compliance-manager.js +415 -0
  68. package/lib/managers/compliance-manager.js.map +1 -0
  69. package/lib/managers/content-manager.d.ts +121 -0
  70. package/lib/managers/content-manager.d.ts.map +1 -0
  71. package/lib/managers/content-manager.js +295 -0
  72. package/lib/managers/content-manager.js.map +1 -0
  73. package/lib/managers/document-utility-manager.d.ts +370 -0
  74. package/lib/managers/document-utility-manager.d.ts.map +1 -0
  75. package/lib/managers/document-utility-manager.js +731 -0
  76. package/lib/managers/document-utility-manager.js.map +1 -0
  77. package/lib/managers/dom-pdf-creator.d.ts +105 -0
  78. package/lib/managers/dom-pdf-creator.d.ts.map +1 -0
  79. package/lib/managers/dom-pdf-creator.js +300 -0
  80. package/lib/managers/dom-pdf-creator.js.map +1 -0
  81. package/lib/managers/editing-manager.d.ts +249 -0
  82. package/lib/managers/editing-manager.d.ts.map +1 -0
  83. package/lib/managers/editing-manager.js +388 -0
  84. package/lib/managers/editing-manager.js.map +1 -0
  85. package/lib/managers/enterprise-manager.d.ts +193 -0
  86. package/lib/managers/enterprise-manager.d.ts.map +1 -0
  87. package/lib/managers/enterprise-manager.js +305 -0
  88. package/lib/managers/enterprise-manager.js.map +1 -0
  89. package/lib/managers/extended-managers.d.ts +123 -0
  90. package/lib/managers/extended-managers.d.ts.map +1 -0
  91. package/lib/managers/extended-managers.js +658 -0
  92. package/lib/managers/extended-managers.js.map +1 -0
  93. package/lib/managers/extraction-manager.d.ts +247 -0
  94. package/lib/managers/extraction-manager.d.ts.map +1 -0
  95. package/lib/managers/extraction-manager.js +478 -0
  96. package/lib/managers/extraction-manager.js.map +1 -0
  97. package/lib/managers/final-utilities.d.ts +128 -0
  98. package/lib/managers/final-utilities.d.ts.map +1 -0
  99. package/lib/managers/final-utilities.js +653 -0
  100. package/lib/managers/final-utilities.js.map +1 -0
  101. package/lib/managers/hybrid-ml-advanced.d.ts +137 -0
  102. package/lib/managers/hybrid-ml-advanced.d.ts.map +1 -0
  103. package/lib/managers/hybrid-ml-advanced.js +707 -0
  104. package/lib/managers/hybrid-ml-advanced.js.map +1 -0
  105. package/lib/managers/index.d.ts +65 -0
  106. package/lib/managers/index.d.ts.map +1 -0
  107. package/lib/managers/index.js +70 -0
  108. package/lib/managers/index.js.map +1 -0
  109. package/lib/managers/layer-manager.d.ts +204 -0
  110. package/lib/managers/layer-manager.d.ts.map +1 -0
  111. package/lib/managers/layer-manager.js +403 -0
  112. package/lib/managers/layer-manager.js.map +1 -0
  113. package/lib/managers/metadata-manager.d.ts +149 -0
  114. package/lib/managers/metadata-manager.d.ts.map +1 -0
  115. package/lib/managers/metadata-manager.js +281 -0
  116. package/lib/managers/metadata-manager.js.map +1 -0
  117. package/lib/managers/ocr-manager.d.ts +195 -0
  118. package/lib/managers/ocr-manager.d.ts.map +1 -0
  119. package/lib/managers/ocr-manager.js +583 -0
  120. package/lib/managers/ocr-manager.js.map +1 -0
  121. package/lib/managers/optimization-manager.d.ts +103 -0
  122. package/lib/managers/optimization-manager.d.ts.map +1 -0
  123. package/lib/managers/optimization-manager.js +194 -0
  124. package/lib/managers/optimization-manager.js.map +1 -0
  125. package/lib/managers/outline-manager.d.ts +102 -0
  126. package/lib/managers/outline-manager.d.ts.map +1 -0
  127. package/lib/managers/outline-manager.js +170 -0
  128. package/lib/managers/outline-manager.js.map +1 -0
  129. package/lib/managers/page-manager.d.ts +143 -0
  130. package/lib/managers/page-manager.d.ts.map +1 -0
  131. package/lib/managers/page-manager.js +237 -0
  132. package/lib/managers/page-manager.js.map +1 -0
  133. package/lib/managers/pattern-detection.d.ts +170 -0
  134. package/lib/managers/pattern-detection.d.ts.map +1 -0
  135. package/lib/managers/pattern-detection.js +325 -0
  136. package/lib/managers/pattern-detection.js.map +1 -0
  137. package/lib/managers/rendering-manager.d.ts +354 -0
  138. package/lib/managers/rendering-manager.d.ts.map +1 -0
  139. package/lib/managers/rendering-manager.js +680 -0
  140. package/lib/managers/rendering-manager.js.map +1 -0
  141. package/lib/managers/search-manager.d.ts +236 -0
  142. package/lib/managers/search-manager.d.ts.map +1 -0
  143. package/lib/managers/search-manager.js +330 -0
  144. package/lib/managers/search-manager.js.map +1 -0
  145. package/lib/managers/security-manager.d.ts +162 -0
  146. package/lib/managers/security-manager.d.ts.map +1 -0
  147. package/lib/managers/security-manager.js +293 -0
  148. package/lib/managers/security-manager.js.map +1 -0
  149. package/lib/managers/signature-manager.d.ts +725 -0
  150. package/lib/managers/signature-manager.d.ts.map +1 -0
  151. package/lib/managers/signature-manager.js +1365 -0
  152. package/lib/managers/signature-manager.js.map +1 -0
  153. package/lib/managers/streams.d.ts +263 -0
  154. package/lib/managers/streams.d.ts.map +1 -0
  155. package/lib/managers/streams.js +472 -0
  156. package/lib/managers/streams.js.map +1 -0
  157. package/lib/managers/xfa-manager.d.ts +228 -0
  158. package/lib/managers/xfa-manager.d.ts.map +1 -0
  159. package/lib/managers/xfa-manager.js +490 -0
  160. package/lib/managers/xfa-manager.js.map +1 -0
  161. package/lib/pdf-creator-manager.d.ts +201 -0
  162. package/lib/pdf-creator-manager.d.ts.map +1 -0
  163. package/lib/pdf-creator-manager.js +379 -0
  164. package/lib/pdf-creator-manager.js.map +1 -0
  165. package/lib/properties.d.ts +80 -0
  166. package/lib/properties.d.ts.map +1 -0
  167. package/lib/properties.js +455 -0
  168. package/lib/properties.js.map +1 -0
  169. package/lib/result-accessors-manager.d.ts +347 -0
  170. package/lib/result-accessors-manager.d.ts.map +1 -0
  171. package/lib/result-accessors-manager.js +705 -0
  172. package/lib/result-accessors-manager.js.map +1 -0
  173. package/lib/thumbnail-manager.d.ts +122 -0
  174. package/lib/thumbnail-manager.d.ts.map +1 -0
  175. package/lib/thumbnail-manager.js +206 -0
  176. package/lib/thumbnail-manager.js.map +1 -0
  177. package/lib/types/common.d.ts +93 -0
  178. package/lib/types/common.d.ts.map +1 -0
  179. package/lib/types/common.js +5 -0
  180. package/lib/types/common.js.map +1 -0
  181. package/lib/types/document-types.d.ts +353 -0
  182. package/lib/types/document-types.d.ts.map +1 -0
  183. package/lib/types/document-types.js +83 -0
  184. package/lib/types/document-types.js.map +1 -0
  185. package/{src/types/index.ts → lib/types/index.d.ts} +1 -1
  186. package/lib/types/index.d.ts.map +1 -0
  187. package/lib/types/index.js +6 -0
  188. package/lib/types/index.js.map +1 -0
  189. package/lib/types/manager-types.d.ts +180 -0
  190. package/lib/types/manager-types.d.ts.map +1 -0
  191. package/lib/types/manager-types.js +99 -0
  192. package/lib/types/manager-types.js.map +1 -0
  193. package/lib/types/native-bindings.d.ts +440 -0
  194. package/lib/types/native-bindings.d.ts.map +1 -0
  195. package/lib/types/native-bindings.js +8 -0
  196. package/lib/types/native-bindings.js.map +1 -0
  197. package/{src/workers/index.ts → lib/workers/index.d.ts} +1 -1
  198. package/lib/workers/index.d.ts.map +1 -0
  199. package/lib/workers/index.js +6 -0
  200. package/lib/workers/index.js.map +1 -0
  201. package/lib/workers/pool.d.ts +65 -0
  202. package/lib/workers/pool.d.ts.map +1 -0
  203. package/lib/workers/pool.js +195 -0
  204. package/lib/workers/pool.js.map +1 -0
  205. package/lib/workers/worker.d.ts +6 -0
  206. package/lib/workers/worker.d.ts.map +1 -0
  207. package/lib/workers/worker.js +100 -0
  208. package/lib/workers/worker.js.map +1 -0
  209. package/package.json +12 -22
  210. package/prebuilds/darwin-arm64/pdf_oxide.node +0 -0
  211. package/prebuilds/darwin-x64/pdf_oxide.node +0 -0
  212. package/prebuilds/linux-arm64/pdf_oxide.node +0 -0
  213. package/prebuilds/linux-x64/pdf_oxide.node +0 -0
  214. package/prebuilds/win32-x64/pdf_oxide.node +0 -0
  215. package/binding.gyp +0 -35
  216. package/src/builders/annotation-builder.ts +0 -367
  217. package/src/builders/conversion-options-builder.ts +0 -257
  218. package/src/builders/metadata-builder.ts +0 -317
  219. package/src/builders/pdf-builder.ts +0 -386
  220. package/src/builders/search-options-builder.ts +0 -151
  221. package/src/document-editor-manager.ts +0 -318
  222. package/src/errors.ts +0 -1629
  223. package/src/form-field-manager.ts +0 -666
  224. package/src/hybrid-ml-manager.ts +0 -283
  225. package/src/index.ts +0 -453
  226. package/src/managers/accessibility-manager.ts +0 -338
  227. package/src/managers/annotation-manager.ts +0 -439
  228. package/src/managers/barcode-manager.ts +0 -235
  229. package/src/managers/batch-manager.ts +0 -533
  230. package/src/managers/cache-manager.ts +0 -486
  231. package/src/managers/compliance-manager.ts +0 -375
  232. package/src/managers/content-manager.ts +0 -339
  233. package/src/managers/document-utility-manager.ts +0 -922
  234. package/src/managers/dom-pdf-creator.ts +0 -365
  235. package/src/managers/editing-manager.ts +0 -514
  236. package/src/managers/enterprise-manager.ts +0 -478
  237. package/src/managers/extended-managers.ts +0 -437
  238. package/src/managers/extraction-manager.ts +0 -583
  239. package/src/managers/final-utilities.ts +0 -429
  240. package/src/managers/hybrid-ml-advanced.ts +0 -479
  241. package/src/managers/index.ts +0 -239
  242. package/src/managers/layer-manager.ts +0 -500
  243. package/src/managers/metadata-manager.ts +0 -303
  244. package/src/managers/ocr-manager.ts +0 -756
  245. package/src/managers/optimization-manager.ts +0 -262
  246. package/src/managers/outline-manager.ts +0 -196
  247. package/src/managers/page-manager.ts +0 -289
  248. package/src/managers/pattern-detection.ts +0 -440
  249. package/src/managers/rendering-manager.ts +0 -863
  250. package/src/managers/search-manager.ts +0 -385
  251. package/src/managers/security-manager.ts +0 -345
  252. package/src/managers/signature-manager.ts +0 -1664
  253. package/src/managers/streams.ts +0 -618
  254. package/src/managers/xfa-manager.ts +0 -500
  255. package/src/pdf-creator-manager.ts +0 -494
  256. package/src/properties.ts +0 -522
  257. package/src/result-accessors-manager.ts +0 -867
  258. package/src/tests/advanced-features.test.ts +0 -414
  259. package/src/tests/advanced.test.ts +0 -266
  260. package/src/tests/extended-managers.test.ts +0 -316
  261. package/src/tests/final-utilities.test.ts +0 -455
  262. package/src/tests/foundation.test.ts +0 -315
  263. package/src/tests/high-demand.test.ts +0 -257
  264. package/src/tests/specialized.test.ts +0 -97
  265. package/src/thumbnail-manager.ts +0 -272
  266. package/src/types/common.ts +0 -142
  267. package/src/types/document-types.ts +0 -457
  268. package/src/types/manager-types.ts +0 -284
  269. package/src/types/native-bindings.ts +0 -517
  270. package/src/workers/pool.ts +0 -274
  271. package/src/workers/worker.ts +0 -131
@@ -0,0 +1,455 @@
1
+ /**
2
+ * PDF Oxide Property Getters for Node.js
3
+ *
4
+ * Adds JavaScript property getters to native classes for idiomatic API.
5
+ * Converts Java-style getters (getPageCount()) to JavaScript properties (pageCount).
6
+ * Caches results where appropriate for performance.
7
+ */
8
+ /**
9
+ * Adds property getters to PdfDocument class
10
+ * Converts methods to idiomatic JavaScript properties
11
+ *
12
+ * @param PdfDocument - The native PdfDocument class
13
+ * @returns Enhanced PdfDocument class with property getters
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * const { PdfDocument } = require('pdf_oxide');
18
+ * const doc = PdfDocument.open('file.pdf');
19
+ * console.log(doc.pageCount); // Instead of doc.get_page_count()
20
+ * console.log(doc.version); // Instead of doc.get_version()
21
+ * ```
22
+ */
23
+ export function addPdfDocumentProperties(PdfDocument) {
24
+ if (!PdfDocument || !PdfDocument.prototype) {
25
+ return PdfDocument;
26
+ }
27
+ const prototype = PdfDocument.prototype;
28
+ // Cache for frequently accessed properties
29
+ const cache = new WeakMap();
30
+ /**
31
+ * Gets the PDF version as [major, minor]
32
+ * Caches result for performance
33
+ */
34
+ Object.defineProperty(prototype, 'version', {
35
+ get() {
36
+ if (!cache.has(this)) {
37
+ cache.set(this, {});
38
+ }
39
+ const obj = cache.get(this);
40
+ if (!obj.version) {
41
+ obj.version = this.get_version ? this.get_version() : [1, 4];
42
+ }
43
+ return obj.version;
44
+ },
45
+ configurable: true,
46
+ enumerable: true,
47
+ });
48
+ /**
49
+ * Gets the number of pages
50
+ * Caches result for performance
51
+ */
52
+ Object.defineProperty(prototype, 'pageCount', {
53
+ get() {
54
+ if (!cache.has(this)) {
55
+ cache.set(this, {});
56
+ }
57
+ const obj = cache.get(this);
58
+ if (obj.pageCount === undefined) {
59
+ try {
60
+ obj.pageCount = this.get_page_count ? this.get_page_count() : 0;
61
+ }
62
+ catch (err) {
63
+ throw err;
64
+ }
65
+ }
66
+ return obj.pageCount;
67
+ },
68
+ configurable: true,
69
+ enumerable: true,
70
+ });
71
+ /**
72
+ * Checks if document has structure tree (Tagged PDF)
73
+ */
74
+ Object.defineProperty(prototype, 'hasStructureTree', {
75
+ get() {
76
+ return this.has_structure_tree ? this.has_structure_tree() : false;
77
+ },
78
+ configurable: true,
79
+ enumerable: true,
80
+ });
81
+ /**
82
+ * Gets document information metadata
83
+ */
84
+ Object.defineProperty(prototype, 'documentInfo', {
85
+ get() {
86
+ if (!cache.has(this)) {
87
+ cache.set(this, {});
88
+ }
89
+ const obj = cache.get(this);
90
+ if (!obj.documentInfo) {
91
+ try {
92
+ obj.documentInfo = this.get_document_info ? this.get_document_info() : {};
93
+ }
94
+ catch (err) {
95
+ throw err;
96
+ }
97
+ }
98
+ return obj.documentInfo;
99
+ },
100
+ configurable: true,
101
+ enumerable: true,
102
+ });
103
+ /**
104
+ * Gets document XMP metadata
105
+ */
106
+ Object.defineProperty(prototype, 'metadata', {
107
+ get() {
108
+ if (!cache.has(this)) {
109
+ cache.set(this, {});
110
+ }
111
+ const obj = cache.get(this);
112
+ if (!obj.metadata) {
113
+ try {
114
+ obj.metadata = this.get_metadata ? this.get_metadata() : {};
115
+ }
116
+ catch (err) {
117
+ throw err;
118
+ }
119
+ }
120
+ return obj.metadata;
121
+ },
122
+ configurable: true,
123
+ enumerable: true,
124
+ });
125
+ /**
126
+ * Gets document forms (AcroForm)
127
+ */
128
+ Object.defineProperty(prototype, 'forms', {
129
+ get() {
130
+ if (!cache.has(this)) {
131
+ cache.set(this, {});
132
+ }
133
+ const obj = cache.get(this);
134
+ if (!obj.forms) {
135
+ try {
136
+ obj.forms = this.get_forms ? this.get_forms() : null;
137
+ }
138
+ catch (err) {
139
+ throw err;
140
+ }
141
+ }
142
+ return obj.forms;
143
+ },
144
+ configurable: true,
145
+ enumerable: true,
146
+ });
147
+ /**
148
+ * Gets page labels
149
+ */
150
+ Object.defineProperty(prototype, 'pageLabels', {
151
+ get() {
152
+ if (!cache.has(this)) {
153
+ cache.set(this, {});
154
+ }
155
+ const obj = cache.get(this);
156
+ if (!obj.pageLabels) {
157
+ try {
158
+ obj.pageLabels = this.get_page_labels ? this.get_page_labels() : [];
159
+ }
160
+ catch (err) {
161
+ throw err;
162
+ }
163
+ }
164
+ return obj.pageLabels;
165
+ },
166
+ configurable: true,
167
+ enumerable: true,
168
+ });
169
+ /**
170
+ * Gets embedded files
171
+ */
172
+ Object.defineProperty(prototype, 'embeddedFiles', {
173
+ get() {
174
+ if (!cache.has(this)) {
175
+ cache.set(this, {});
176
+ }
177
+ const obj = cache.get(this);
178
+ if (!obj.embeddedFiles) {
179
+ try {
180
+ obj.embeddedFiles = this.get_embedded_files ? this.get_embedded_files() : [];
181
+ }
182
+ catch (err) {
183
+ throw err;
184
+ }
185
+ }
186
+ return obj.embeddedFiles;
187
+ },
188
+ configurable: true,
189
+ enumerable: true,
190
+ });
191
+ return PdfDocument;
192
+ }
193
+ /**
194
+ * Adds property getters to Pdf class
195
+ *
196
+ * @param Pdf - The native Pdf class
197
+ * @returns Enhanced Pdf class with property getters
198
+ *
199
+ * @example
200
+ * ```typescript
201
+ * const { Pdf } = require('pdf_oxide');
202
+ * const doc = Pdf.fromMarkdown('# Hello');
203
+ * console.log(doc.pageCount); // Instead of doc.get_page_count()
204
+ * console.log(doc.version); // Instead of doc.get_version()
205
+ * ```
206
+ */
207
+ export function addPdfProperties(Pdf) {
208
+ if (!Pdf || !Pdf.prototype) {
209
+ return Pdf;
210
+ }
211
+ const prototype = Pdf.prototype;
212
+ const cache = new WeakMap();
213
+ /**
214
+ * Gets the PDF version as [major, minor]
215
+ */
216
+ Object.defineProperty(prototype, 'version', {
217
+ get() {
218
+ if (!cache.has(this)) {
219
+ cache.set(this, {});
220
+ }
221
+ const obj = cache.get(this);
222
+ if (!obj.version) {
223
+ obj.version = this.get_version ? this.get_version() : [1, 4];
224
+ }
225
+ return obj.version;
226
+ },
227
+ configurable: true,
228
+ enumerable: true,
229
+ });
230
+ /**
231
+ * Gets the number of pages
232
+ */
233
+ Object.defineProperty(prototype, 'pageCount', {
234
+ get() {
235
+ if (!cache.has(this)) {
236
+ cache.set(this, {});
237
+ }
238
+ const obj = cache.get(this);
239
+ if (obj.pageCount === undefined) {
240
+ try {
241
+ obj.pageCount = this.get_page_count ? this.get_page_count() : 0;
242
+ }
243
+ catch (err) {
244
+ throw err;
245
+ }
246
+ }
247
+ return obj.pageCount;
248
+ },
249
+ configurable: true,
250
+ enumerable: true,
251
+ });
252
+ /**
253
+ * Gets document information metadata
254
+ */
255
+ Object.defineProperty(prototype, 'documentInfo', {
256
+ get() {
257
+ if (!cache.has(this)) {
258
+ cache.set(this, {});
259
+ }
260
+ const obj = cache.get(this);
261
+ if (!obj.documentInfo) {
262
+ try {
263
+ obj.documentInfo = this.get_document_info ? this.get_document_info() : {};
264
+ }
265
+ catch (err) {
266
+ throw err;
267
+ }
268
+ }
269
+ return obj.documentInfo;
270
+ },
271
+ configurable: true,
272
+ enumerable: true,
273
+ });
274
+ /**
275
+ * Gets document XMP metadata
276
+ */
277
+ Object.defineProperty(prototype, 'metadata', {
278
+ get() {
279
+ if (!cache.has(this)) {
280
+ cache.set(this, {});
281
+ }
282
+ const obj = cache.get(this);
283
+ if (!obj.metadata) {
284
+ try {
285
+ obj.metadata = this.get_metadata ? this.get_metadata() : {};
286
+ }
287
+ catch (err) {
288
+ throw err;
289
+ }
290
+ }
291
+ return obj.metadata;
292
+ },
293
+ configurable: true,
294
+ enumerable: true,
295
+ });
296
+ /**
297
+ * Gets document forms
298
+ */
299
+ Object.defineProperty(prototype, 'forms', {
300
+ get() {
301
+ if (!cache.has(this)) {
302
+ cache.set(this, {});
303
+ }
304
+ const obj = cache.get(this);
305
+ if (!obj.forms) {
306
+ try {
307
+ obj.forms = this.get_forms ? this.get_forms() : null;
308
+ }
309
+ catch (err) {
310
+ throw err;
311
+ }
312
+ }
313
+ return obj.forms;
314
+ },
315
+ configurable: true,
316
+ enumerable: true,
317
+ });
318
+ return Pdf;
319
+ }
320
+ /**
321
+ * Adds property getters to PdfPage class
322
+ *
323
+ * @param PdfPage - The native PdfPage class
324
+ * @returns Enhanced PdfPage class with property getters
325
+ *
326
+ * @example
327
+ * ```typescript
328
+ * const page = doc.page(0);
329
+ * console.log(page.width); // Instead of page.get_width()
330
+ * console.log(page.height); // Instead of page.get_height()
331
+ * console.log(page.pageIndex); // Instead of page.get_page_index()
332
+ * ```
333
+ */
334
+ export function addPdfPageProperties(PdfPage) {
335
+ if (!PdfPage || !PdfPage.prototype) {
336
+ return PdfPage;
337
+ }
338
+ const prototype = PdfPage.prototype;
339
+ const cache = new WeakMap();
340
+ /**
341
+ * Gets the page index (zero-based)
342
+ */
343
+ Object.defineProperty(prototype, 'pageIndex', {
344
+ get() {
345
+ return this.get_page_index ? this.get_page_index() : 0;
346
+ },
347
+ configurable: true,
348
+ enumerable: true,
349
+ });
350
+ /**
351
+ * Gets the page width in points
352
+ */
353
+ Object.defineProperty(prototype, 'width', {
354
+ get() {
355
+ return this.get_width ? this.get_width() : 612.0;
356
+ },
357
+ configurable: true,
358
+ enumerable: true,
359
+ });
360
+ /**
361
+ * Gets the page height in points
362
+ */
363
+ Object.defineProperty(prototype, 'height', {
364
+ get() {
365
+ return this.get_height ? this.get_height() : 792.0;
366
+ },
367
+ configurable: true,
368
+ enumerable: true,
369
+ });
370
+ /**
371
+ * Gets the page bounds as a Rect
372
+ */
373
+ Object.defineProperty(prototype, 'bounds', {
374
+ get() {
375
+ if (!cache.has(this)) {
376
+ cache.set(this, {});
377
+ }
378
+ const obj = cache.get(this);
379
+ if (!obj.bounds) {
380
+ if (this.get_bounds) {
381
+ obj.bounds = this.get_bounds();
382
+ }
383
+ else {
384
+ // Return default bounds [0, 0, width, height]
385
+ obj.bounds = {
386
+ x: 0,
387
+ y: 0,
388
+ width: this.width || 612.0,
389
+ height: this.height || 792.0,
390
+ };
391
+ }
392
+ }
393
+ return obj.bounds;
394
+ },
395
+ configurable: true,
396
+ enumerable: true,
397
+ });
398
+ /**
399
+ * Gets the page orientation (portrait or landscape)
400
+ */
401
+ Object.defineProperty(prototype, 'orientation', {
402
+ get() {
403
+ const width = this.width || 612.0;
404
+ const height = this.height || 792.0;
405
+ return height >= width ? 'portrait' : 'landscape';
406
+ },
407
+ configurable: true,
408
+ enumerable: true,
409
+ });
410
+ /**
411
+ * Gets the page aspect ratio (width / height)
412
+ */
413
+ Object.defineProperty(prototype, 'aspectRatio', {
414
+ get() {
415
+ const width = this.width || 612.0;
416
+ const height = this.height || 792.0;
417
+ return width / height;
418
+ },
419
+ configurable: true,
420
+ enumerable: true,
421
+ });
422
+ return PdfPage;
423
+ }
424
+ /**
425
+ * Adds property getters to all supported classes
426
+ *
427
+ * @param classes - Object with class references
428
+ * @returns Object with enhanced classes
429
+ *
430
+ * @example
431
+ * ```typescript
432
+ * const classes = {
433
+ * PdfDocument,
434
+ * Pdf,
435
+ * PdfPage,
436
+ * PdfElement,
437
+ * PdfText,
438
+ * PdfImage,
439
+ * };
440
+ * const enhanced = addPropertiesToAll(classes);
441
+ * ```
442
+ */
443
+ export function addPropertiesToAll(classes) {
444
+ if (classes.PdfDocument) {
445
+ classes.PdfDocument = addPdfDocumentProperties(classes.PdfDocument);
446
+ }
447
+ if (classes.Pdf) {
448
+ classes.Pdf = addPdfProperties(classes.Pdf);
449
+ }
450
+ if (classes.PdfPage) {
451
+ classes.PdfPage = addPdfPageProperties(classes.PdfPage);
452
+ }
453
+ return classes;
454
+ }
455
+ //# sourceMappingURL=properties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"properties.js","sourceRoot":"","sources":["../src/properties.ts"],"names":[],"mappings":"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"}