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,224 @@
1
+ /**
2
+ * AccessibilityManager - PDF Accessibility Operations
3
+ *
4
+ * Provides accessibility analysis and remediation capabilities including:
5
+ * - Tagged PDF detection
6
+ * - Structure tree extraction
7
+ * - Auto-tagging
8
+ * - Alt text management
9
+ * - Language and title metadata
10
+ *
11
+ * @since 1.0.0
12
+ */
13
+ import { EventEmitter } from 'events';
14
+ import { mapFfiErrorCode, AccessibilityException } from '../errors.js';
15
+ // =============================================================================
16
+ // AccessibilityManager
17
+ // =============================================================================
18
+ /**
19
+ * Manager for PDF accessibility operations.
20
+ *
21
+ * Provides methods for inspecting and improving the accessibility of
22
+ * PDF documents, including tagged PDF detection, structure tree analysis,
23
+ * auto-tagging, and alt text management.
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * const accessibility = new AccessibilityManager(document);
28
+ *
29
+ * // Check if document is tagged
30
+ * const tagged = await accessibility.isTagged();
31
+ *
32
+ * // Auto-tag an untagged document
33
+ * if (!tagged) {
34
+ * const result = await accessibility.autoTag('en');
35
+ * console.log(`Tagged ${result.elementsTagged} elements`);
36
+ * }
37
+ *
38
+ * // Set alt text on images
39
+ * await accessibility.setAltText(0, 1, 'Company logo');
40
+ * ```
41
+ */
42
+ export class AccessibilityManager extends EventEmitter {
43
+ constructor(document) {
44
+ super();
45
+ if (!document) {
46
+ throw new Error('Document cannot be null or undefined');
47
+ }
48
+ this.document = document;
49
+ try {
50
+ this.native = require('../../index.node');
51
+ }
52
+ catch {
53
+ this.native = null;
54
+ }
55
+ }
56
+ // ===========================================================================
57
+ // Accessibility Analysis
58
+ // ===========================================================================
59
+ /**
60
+ * Checks whether the PDF document is tagged.
61
+ *
62
+ * A tagged PDF contains a structure tree that defines the logical
63
+ * reading order and semantic structure of the content.
64
+ *
65
+ * @returns True if the document is tagged
66
+ * @throws AccessibilityException if the check fails
67
+ */
68
+ async isTagged() {
69
+ if (!this.native?.pdf_accessibility_is_tagged) {
70
+ throw new AccessibilityException('Native accessibility not available: pdf_accessibility_is_tagged not found');
71
+ }
72
+ const errorCode = Buffer.alloc(4);
73
+ const result = this.native.pdf_accessibility_is_tagged(this.document._handle ?? this.document, errorCode);
74
+ const code = errorCode.readInt32LE(0);
75
+ if (code !== 0) {
76
+ throw mapFfiErrorCode(code, 'Failed to check if document is tagged');
77
+ }
78
+ this.emit('tagged-checked', { isTagged: result });
79
+ return !!result;
80
+ }
81
+ /**
82
+ * Gets the full structure tree of the document.
83
+ *
84
+ * Returns the hierarchical structure tree that defines the logical
85
+ * organization and reading order of the document content.
86
+ *
87
+ * @returns The document structure tree
88
+ * @throws AccessibilityException if the extraction fails
89
+ */
90
+ async getStructureTree() {
91
+ if (!this.native?.pdf_accessibility_get_structure_tree) {
92
+ throw new AccessibilityException('Native accessibility not available: pdf_accessibility_get_structure_tree not found');
93
+ }
94
+ const errorCode = Buffer.alloc(4);
95
+ const resultPtr = this.native.pdf_accessibility_get_structure_tree(this.document._handle ?? this.document, errorCode);
96
+ const code = errorCode.readInt32LE(0);
97
+ if (code !== 0) {
98
+ throw mapFfiErrorCode(code, 'Failed to get structure tree');
99
+ }
100
+ try {
101
+ const tree = typeof resultPtr === 'string'
102
+ ? JSON.parse(resultPtr)
103
+ : resultPtr;
104
+ this.emit('structure-tree-retrieved', { totalElements: tree.totalElements });
105
+ // Free native handle if needed
106
+ if (this.native.pdf_structure_tree_free && typeof resultPtr !== 'string') {
107
+ this.native.pdf_structure_tree_free(resultPtr);
108
+ }
109
+ return tree;
110
+ }
111
+ catch {
112
+ return {
113
+ isTagged: false,
114
+ elements: [],
115
+ totalElements: 0,
116
+ };
117
+ }
118
+ }
119
+ /**
120
+ * Automatically tags an untagged PDF document.
121
+ *
122
+ * Uses heuristic analysis to detect document structure and apply
123
+ * appropriate tags for headings, paragraphs, images, tables, and lists.
124
+ *
125
+ * @param language - Optional BCP-47 language tag (e.g., 'en', 'fr', 'de')
126
+ * @returns Result of the auto-tagging operation
127
+ * @throws AccessibilityException if auto-tagging fails
128
+ */
129
+ async autoTag(language) {
130
+ if (!this.native?.pdf_accessibility_auto_tag) {
131
+ throw new AccessibilityException('Native accessibility not available: pdf_accessibility_auto_tag not found');
132
+ }
133
+ const errorCode = Buffer.alloc(4);
134
+ const resultPtr = this.native.pdf_accessibility_auto_tag(this.document._handle ?? this.document, language ?? null, errorCode);
135
+ const code = errorCode.readInt32LE(0);
136
+ if (code !== 0) {
137
+ throw mapFfiErrorCode(code, 'Failed to auto-tag document');
138
+ }
139
+ let result;
140
+ try {
141
+ result = typeof resultPtr === 'string'
142
+ ? JSON.parse(resultPtr)
143
+ : resultPtr ?? { success: true, elementsTagged: 0, imagesFound: 0, headingsDetected: 0, warnings: [] };
144
+ }
145
+ catch {
146
+ result = { success: true, elementsTagged: 0, imagesFound: 0, headingsDetected: 0, warnings: [] };
147
+ }
148
+ this.emit('auto-tagged', { language, elementsTagged: result.elementsTagged });
149
+ return result;
150
+ }
151
+ // ===========================================================================
152
+ // Alt Text Management
153
+ // ===========================================================================
154
+ /**
155
+ * Sets alt text for a structure element identified by page and MCID.
156
+ *
157
+ * @param page - Zero-based page index
158
+ * @param mcid - Marked content identifier of the element
159
+ * @param text - Alt text to set
160
+ * @throws AccessibilityException if the operation fails
161
+ */
162
+ async setAltText(page, mcid, text) {
163
+ if (!this.native?.pdf_accessibility_set_alt_text) {
164
+ throw new AccessibilityException('Native accessibility not available: pdf_accessibility_set_alt_text not found');
165
+ }
166
+ const errorCode = Buffer.alloc(4);
167
+ this.native.pdf_accessibility_set_alt_text(this.document._handle ?? this.document, page, mcid, text, errorCode);
168
+ const code = errorCode.readInt32LE(0);
169
+ if (code !== 0) {
170
+ throw mapFfiErrorCode(code, `Failed to set alt text on page ${page}, mcid ${mcid}`);
171
+ }
172
+ this.emit('alt-text-set', { page, mcid, text });
173
+ }
174
+ // ===========================================================================
175
+ // Document-Level Accessibility Metadata
176
+ // ===========================================================================
177
+ /**
178
+ * Sets the document language.
179
+ *
180
+ * @param lang - BCP-47 language tag (e.g., 'en', 'en-US', 'fr')
181
+ * @throws AccessibilityException if the operation fails
182
+ */
183
+ async setLanguage(lang) {
184
+ if (!this.native?.pdf_accessibility_set_language) {
185
+ throw new AccessibilityException('Native accessibility not available: pdf_accessibility_set_language not found');
186
+ }
187
+ const errorCode = Buffer.alloc(4);
188
+ this.native.pdf_accessibility_set_language(this.document._handle ?? this.document, lang, errorCode);
189
+ const code = errorCode.readInt32LE(0);
190
+ if (code !== 0) {
191
+ throw mapFfiErrorCode(code, `Failed to set document language to '${lang}'`);
192
+ }
193
+ this.emit('language-set', { lang });
194
+ }
195
+ /**
196
+ * Sets the document title for accessibility.
197
+ *
198
+ * @param title - Document title
199
+ * @throws AccessibilityException if the operation fails
200
+ */
201
+ async setTitle(title) {
202
+ if (!this.native?.pdf_accessibility_set_title) {
203
+ throw new AccessibilityException('Native accessibility not available: pdf_accessibility_set_title not found');
204
+ }
205
+ const errorCode = Buffer.alloc(4);
206
+ this.native.pdf_accessibility_set_title(this.document._handle ?? this.document, title, errorCode);
207
+ const code = errorCode.readInt32LE(0);
208
+ if (code !== 0) {
209
+ throw mapFfiErrorCode(code, 'Failed to set document title');
210
+ }
211
+ this.emit('title-set', { title });
212
+ }
213
+ // ===========================================================================
214
+ // Cleanup
215
+ // ===========================================================================
216
+ /**
217
+ * Releases resources held by this manager.
218
+ */
219
+ destroy() {
220
+ this.removeAllListeners();
221
+ }
222
+ }
223
+ export default AccessibilityManager;
224
+ //# sourceMappingURL=accessibility-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessibility-manager.js","sourceRoot":"","sources":["../../src/managers/accessibility-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,220 @@
1
+ /**
2
+ * Manager for PDF page annotations (comments, highlights, etc.)
3
+ *
4
+ * Provides methods to work with annotations on PDF pages including
5
+ * comments, highlights, underlines, and other markup.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { AnnotationManager } from 'pdf_oxide';
10
+ *
11
+ * const doc = PdfDocument.open('document.pdf');
12
+ * const page = doc.getPage(0);
13
+ * const annotationManager = new AnnotationManager(page);
14
+ *
15
+ * // Get annotations on the page
16
+ * const annotations = annotationManager.getAnnotations();
17
+ * console.log(`Page has ${annotations.length} annotations`);
18
+ * ```
19
+ */
20
+ export interface Annotation {
21
+ type: string;
22
+ content?: string;
23
+ author?: string;
24
+ modificationDate?: Date;
25
+ bounds?: {
26
+ x: number;
27
+ y: number;
28
+ width: number;
29
+ height: number;
30
+ };
31
+ opacity?: number;
32
+ [key: string]: any;
33
+ }
34
+ export interface AnnotationStatistics {
35
+ total: number;
36
+ byType: Record<string, number>;
37
+ byAuthor: Record<string, number>;
38
+ authors: string[];
39
+ types: string[];
40
+ hasComments: boolean;
41
+ hasHighlights: boolean;
42
+ averageOpacity: number;
43
+ recentModifications: number;
44
+ }
45
+ export interface AnnotationValidation {
46
+ isValid: boolean;
47
+ issues: string[];
48
+ }
49
+ export declare class AnnotationManager {
50
+ private _page;
51
+ private _annotationCache;
52
+ private _statisticsCache;
53
+ /**
54
+ * Creates a new AnnotationManager for the given page
55
+ * @param page - The PDF page
56
+ * @throws Error if page is null or undefined
57
+ */
58
+ constructor(page: any);
59
+ /**
60
+ * Clears the annotation cache
61
+ * Useful when page content might have changed
62
+ */
63
+ clearCache(): void;
64
+ /**
65
+ * Gets all annotations on the page
66
+ * Performance optimization: caches results to avoid redundant fetches
67
+ * @returns Array of annotations
68
+ *
69
+ * @example
70
+ * ```typescript
71
+ * const annotations = manager.getAnnotations();
72
+ * annotations.forEach(ann => {
73
+ * console.log(`${ann.type}: ${ann.content}`);
74
+ * });
75
+ * ```
76
+ */
77
+ getAnnotations(): Annotation[];
78
+ /**
79
+ * Gets annotations by type
80
+ * @param type - Annotation type ('text', 'highlight', 'underline', 'strikeout', 'squiggly')
81
+ * @returns Matching annotations
82
+ *
83
+ * @example
84
+ * ```typescript
85
+ * const highlights = manager.getAnnotationsByType('highlight');
86
+ * console.log(`Page has ${highlights.length} highlights`);
87
+ * ```
88
+ */
89
+ getAnnotationsByType(type: string): Annotation[];
90
+ /**
91
+ * Gets number of annotations on page
92
+ * @returns Annotation count
93
+ */
94
+ getAnnotationCount(): number;
95
+ /**
96
+ * Gets annotations by author
97
+ * @param author - Author name to filter
98
+ * @returns Annotations by specified author
99
+ *
100
+ * @example
101
+ * ```typescript
102
+ * const johnDoeAnnotations = manager.getAnnotationsByAuthor('John Doe');
103
+ * ```
104
+ */
105
+ getAnnotationsByAuthor(author: string): Annotation[];
106
+ /**
107
+ * Gets unique authors of annotations
108
+ * @returns Array of author names
109
+ */
110
+ getAnnotationAuthors(): string[];
111
+ /**
112
+ * Gets annotations modified after a date
113
+ * @param date - Filter date
114
+ * @returns Annotations modified after date
115
+ *
116
+ * @example
117
+ * ```typescript
118
+ * const recentAnnotations = manager.getAnnotationsAfter(new Date('2024-01-01'));
119
+ * ```
120
+ */
121
+ getAnnotationsAfter(date: Date): Annotation[];
122
+ /**
123
+ * Gets annotations modified before a date
124
+ * @param date - Filter date
125
+ * @returns Annotations modified before date
126
+ */
127
+ getAnnotationsBefore(date: Date): Annotation[];
128
+ /**
129
+ * Gets annotations with specific content
130
+ * @param contentFragment - Text fragment to search for
131
+ * @returns Matching annotations
132
+ *
133
+ * @example
134
+ * ```typescript
135
+ * const reviewComments = manager.getAnnotationsWithContent('review');
136
+ * ```
137
+ */
138
+ getAnnotationsWithContent(contentFragment: string): Annotation[];
139
+ /**
140
+ * Gets highlights (most common annotation type)
141
+ * @returns Array of highlight annotations
142
+ */
143
+ getHighlights(): Annotation[];
144
+ /**
145
+ * Gets text comments/notes
146
+ * @returns Array of text annotations
147
+ */
148
+ getComments(): Annotation[];
149
+ /**
150
+ * Gets underlines
151
+ * @returns Array of underline annotations
152
+ */
153
+ getUnderlines(): Annotation[];
154
+ /**
155
+ * Gets strikeouts
156
+ * @returns Array of strikeout annotations
157
+ */
158
+ getStrikeouts(): Annotation[];
159
+ /**
160
+ * Gets squiggly underlines
161
+ * @returns Array of squiggly annotations
162
+ */
163
+ getSquigglies(): Annotation[];
164
+ /**
165
+ * Gets annotations statistics
166
+ * Performance optimization: caches computed statistics
167
+ * @returns Statistics about annotations
168
+ *
169
+ * @example
170
+ * ```typescript
171
+ * const stats = manager.getAnnotationStatistics();
172
+ * console.log(`Total: ${stats.total}, Highlights: ${stats.byType.highlight}`);
173
+ * ```
174
+ */
175
+ getAnnotationStatistics(): AnnotationStatistics;
176
+ /**
177
+ * Gets average opacity of annotations
178
+ * @returns Average opacity value (0-1)
179
+ * @private
180
+ */
181
+ private getAverageOpacity;
182
+ /**
183
+ * Gets annotations modified within last N days
184
+ * @param days - Number of days to look back
185
+ * @returns Recent annotations
186
+ *
187
+ * @example
188
+ * ```typescript
189
+ * const lastWeek = manager.getRecentAnnotations(7);
190
+ * console.log(`${lastWeek.length} annotations modified in last 7 days`);
191
+ * ```
192
+ */
193
+ getRecentAnnotations(days: number): Annotation[];
194
+ /**
195
+ * Generates annotation summary
196
+ * @returns Human-readable annotation summary
197
+ *
198
+ * @example
199
+ * ```typescript
200
+ * console.log(manager.generateAnnotationSummary());
201
+ * ```
202
+ */
203
+ generateAnnotationSummary(): string;
204
+ /**
205
+ * Validates annotation bounds
206
+ * @param annotation - Annotation to validate
207
+ * @returns Validation result
208
+ *
209
+ * @example
210
+ * ```typescript
211
+ * const annotation = manager.getAnnotations()[0];
212
+ * const validation = manager.validateAnnotation(annotation);
213
+ * if (!validation.isValid) {
214
+ * console.log('Invalid:', validation.issues);
215
+ * }
216
+ * ```
217
+ */
218
+ validateAnnotation(annotation: any): AnnotationValidation;
219
+ }
220
+ //# sourceMappingURL=annotation-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotation-manager.d.ts","sourceRoot":"","sources":["../../src/managers/annotation-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE;QACP,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,gBAAgB,CAAsB;IAC9C,OAAO,CAAC,gBAAgB,CAA8B;IAEtD;;;;OAIG;gBACS,IAAI,EAAE,GAAG;IAUrB;;;OAGG;IACH,UAAU,IAAI,IAAI;IAKlB;;;;;;;;;;;;OAYG;IACH,cAAc,IAAI,UAAU,EAAE;IAiB9B;;;;;;;;;;OAUG;IACH,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE;IAchD;;;OAGG;IACH,kBAAkB,IAAI,MAAM;IAI5B;;;;;;;;;OASG;IACH,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,EAAE;IASpD;;;OAGG;IACH,oBAAoB,IAAI,MAAM,EAAE;IAahC;;;;;;;;;OASG;IACH,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,EAAE;IAW7C;;;;OAIG;IACH,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,EAAE;IAW9C;;;;;;;;;OASG;IACH,yBAAyB,CAAC,eAAe,EAAE,MAAM,GAAG,UAAU,EAAE;IAahE;;;OAGG;IACH,aAAa,IAAI,UAAU,EAAE;IAI7B;;;OAGG;IACH,WAAW,IAAI,UAAU,EAAE;IAI3B;;;OAGG;IACH,aAAa,IAAI,UAAU,EAAE;IAI7B;;;OAGG;IACH,aAAa,IAAI,UAAU,EAAE;IAI7B;;;OAGG;IACH,aAAa,IAAI,UAAU,EAAE;IAI7B;;;;;;;;;;OAUG;IACH,uBAAuB,IAAI,oBAAoB;IAqC/C;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;;;;;;;;;OAUG;IACH,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE;IAWhD;;;;;;;;OAQG;IACH,yBAAyB,IAAI,MAAM;IAwBnC;;;;;;;;;;;;;OAaG;IACH,kBAAkB,CAAC,UAAU,EAAE,GAAG,GAAG,oBAAoB;CA4B1D"}