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,201 @@
1
+ /**
2
+ * PdfCreatorManager for creating new PDF documents
3
+ *
4
+ * Provides methods to create PDF documents from scratch, add content,
5
+ * and build documents programmatically. API is consistent with Python,
6
+ * Java, C#, Go, and Swift implementations.
7
+ */
8
+ import { EventEmitter } from 'events';
9
+ /**
10
+ * Page size presets
11
+ */
12
+ export declare enum PageSize {
13
+ Letter = "letter",// 8.5 x 11 inches
14
+ Legal = "legal",// 8.5 x 14 inches
15
+ A4 = "a4",// 210 x 297 mm
16
+ A3 = "a3",// 297 x 420 mm
17
+ A5 = "a5",// 148 x 210 mm
18
+ Custom = "custom"
19
+ }
20
+ /**
21
+ * Page orientation
22
+ */
23
+ export declare enum PageOrientation {
24
+ Portrait = "portrait",
25
+ Landscape = "landscape"
26
+ }
27
+ /**
28
+ * Font style options
29
+ */
30
+ export declare enum FontStyle {
31
+ Normal = "normal",
32
+ Bold = "bold",
33
+ Italic = "italic",
34
+ BoldItalic = "bolditalic"
35
+ }
36
+ /**
37
+ * Text alignment options
38
+ */
39
+ export declare enum TextAlign {
40
+ Left = "left",
41
+ Center = "center",
42
+ Right = "right",
43
+ Justify = "justify"
44
+ }
45
+ /**
46
+ * Configuration for page creation
47
+ */
48
+ export interface PageConfig {
49
+ size?: PageSize;
50
+ orientation?: PageOrientation;
51
+ customWidth?: number;
52
+ customHeight?: number;
53
+ marginTop?: number;
54
+ marginBottom?: number;
55
+ marginLeft?: number;
56
+ marginRight?: number;
57
+ }
58
+ /**
59
+ * Configuration for text addition
60
+ */
61
+ export interface TextConfig {
62
+ x: number;
63
+ y: number;
64
+ text: string;
65
+ fontSize?: number;
66
+ fontFamily?: string;
67
+ fontStyle?: FontStyle;
68
+ color?: string;
69
+ align?: TextAlign;
70
+ lineHeight?: number;
71
+ maxWidth?: number;
72
+ }
73
+ /**
74
+ * Configuration for image addition
75
+ */
76
+ export interface ImageConfig {
77
+ x: number;
78
+ y: number;
79
+ width?: number;
80
+ height?: number;
81
+ preserveAspectRatio?: boolean;
82
+ imageData?: Buffer;
83
+ imagePath?: string;
84
+ }
85
+ /**
86
+ * Configuration for rectangle drawing
87
+ */
88
+ export interface RectConfig {
89
+ x: number;
90
+ y: number;
91
+ width: number;
92
+ height: number;
93
+ fillColor?: string;
94
+ strokeColor?: string;
95
+ strokeWidth?: number;
96
+ }
97
+ /**
98
+ * PDF document metadata
99
+ */
100
+ export interface DocumentMetadata {
101
+ title?: string;
102
+ author?: string;
103
+ subject?: string;
104
+ keywords?: string[];
105
+ creator?: string;
106
+ }
107
+ /**
108
+ * PDF Creator Manager for document creation
109
+ *
110
+ * Provides methods to:
111
+ * - Create new PDF documents
112
+ * - Add pages with various sizes
113
+ * - Add text, images, and shapes
114
+ * - Set document metadata
115
+ * - Build complete documents
116
+ */
117
+ export declare class PdfCreatorManager extends EventEmitter {
118
+ private pages;
119
+ private currentPageIndex;
120
+ private metadata;
121
+ private defaultPageConfig;
122
+ constructor();
123
+ /**
124
+ * Creates a new page in the document
125
+ * Matches: Python addPage(), Java addPage(), C# AddPage()
126
+ */
127
+ addPage(config?: PageConfig): number;
128
+ /**
129
+ * Sets the current page for content addition
130
+ * Matches: Python setCurrentPage(), Java setCurrentPage(), C# SetCurrentPage()
131
+ */
132
+ setCurrentPage(pageIndex: number): void;
133
+ /**
134
+ * Adds text to the current page
135
+ * Matches: Python addText(), Java addText(), C# AddText()
136
+ */
137
+ addText(config: TextConfig): void;
138
+ /**
139
+ * Adds an image to the current page
140
+ * Matches: Python addImage(), Java addImage(), C# AddImage()
141
+ */
142
+ addImage(config: ImageConfig): Promise<void>;
143
+ /**
144
+ * Draws a rectangle on the current page
145
+ * Matches: Python drawRect(), Java drawRect(), C# DrawRect()
146
+ */
147
+ drawRect(config: RectConfig): void;
148
+ /**
149
+ * Draws a line on the current page
150
+ * Matches: Python drawLine(), Java drawLine(), C# DrawLine()
151
+ */
152
+ drawLine(x1: number, y1: number, x2: number, y2: number, color?: string, width?: number): void;
153
+ /**
154
+ * Sets document metadata
155
+ * Matches: Python setMetadata(), Java setMetadata(), C# SetMetadata()
156
+ */
157
+ setMetadata(metadata: DocumentMetadata): void;
158
+ /**
159
+ * Gets document metadata
160
+ * Matches: Python getMetadata(), Java getMetadata(), C# GetMetadata()
161
+ */
162
+ getMetadata(): DocumentMetadata;
163
+ /**
164
+ * Gets the number of pages
165
+ * Matches: Python getPageCount(), Java getPageCount(), C# GetPageCount()
166
+ */
167
+ getPageCount(): number;
168
+ /**
169
+ * Gets information about a page
170
+ * Matches: Python getPageInfo(), Java getPageInfo(), C# GetPageInfo()
171
+ */
172
+ getPageInfo(pageIndex: number): any;
173
+ /**
174
+ * Builds and returns the PDF document as a Buffer
175
+ * Matches: Python build(), Java build(), C# Build()
176
+ */
177
+ build(): Promise<Buffer>;
178
+ /**
179
+ * Saves the PDF to a file
180
+ * Matches: Python save(), Java save(), C# Save()
181
+ */
182
+ save(filePath: string): Promise<void>;
183
+ /**
184
+ * Clears the document (removes all pages)
185
+ * Matches: Python clear(), Java clear(), C# Clear()
186
+ */
187
+ clear(): void;
188
+ /**
189
+ * Sets default page configuration
190
+ * Matches: Python setDefaultPageConfig(), Java setDefaultPageConfig(), C# SetDefaultPageConfig()
191
+ */
192
+ setDefaultPageConfig(config: PageConfig): void;
193
+ private ensureCurrentPage;
194
+ /**
195
+ * Serializes the document to PDF format
196
+ * Creates a minimal but valid PDF structure
197
+ */
198
+ private serializeToPdf;
199
+ }
200
+ export default PdfCreatorManager;
201
+ //# sourceMappingURL=pdf-creator-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf-creator-manager.d.ts","sourceRoot":"","sources":["../src/pdf-creator-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,379 @@
1
+ /**
2
+ * PdfCreatorManager for creating new PDF documents
3
+ *
4
+ * Provides methods to create PDF documents from scratch, add content,
5
+ * and build documents programmatically. API is consistent with Python,
6
+ * Java, C#, Go, and Swift implementations.
7
+ */
8
+ import { EventEmitter } from 'events';
9
+ import { promises as fs } from 'fs';
10
+ import * as path from 'path';
11
+ /**
12
+ * Page size presets
13
+ */
14
+ export var PageSize;
15
+ (function (PageSize) {
16
+ PageSize["Letter"] = "letter";
17
+ PageSize["Legal"] = "legal";
18
+ PageSize["A4"] = "a4";
19
+ PageSize["A3"] = "a3";
20
+ PageSize["A5"] = "a5";
21
+ PageSize["Custom"] = "custom";
22
+ })(PageSize || (PageSize = {}));
23
+ /**
24
+ * Page orientation
25
+ */
26
+ export var PageOrientation;
27
+ (function (PageOrientation) {
28
+ PageOrientation["Portrait"] = "portrait";
29
+ PageOrientation["Landscape"] = "landscape";
30
+ })(PageOrientation || (PageOrientation = {}));
31
+ /**
32
+ * Font style options
33
+ */
34
+ export var FontStyle;
35
+ (function (FontStyle) {
36
+ FontStyle["Normal"] = "normal";
37
+ FontStyle["Bold"] = "bold";
38
+ FontStyle["Italic"] = "italic";
39
+ FontStyle["BoldItalic"] = "bolditalic";
40
+ })(FontStyle || (FontStyle = {}));
41
+ /**
42
+ * Text alignment options
43
+ */
44
+ export var TextAlign;
45
+ (function (TextAlign) {
46
+ TextAlign["Left"] = "left";
47
+ TextAlign["Center"] = "center";
48
+ TextAlign["Right"] = "right";
49
+ TextAlign["Justify"] = "justify";
50
+ })(TextAlign || (TextAlign = {}));
51
+ /**
52
+ * PDF Creator Manager for document creation
53
+ *
54
+ * Provides methods to:
55
+ * - Create new PDF documents
56
+ * - Add pages with various sizes
57
+ * - Add text, images, and shapes
58
+ * - Set document metadata
59
+ * - Build complete documents
60
+ */
61
+ export class PdfCreatorManager extends EventEmitter {
62
+ constructor() {
63
+ super();
64
+ this.pages = [];
65
+ this.currentPageIndex = -1;
66
+ this.metadata = {};
67
+ this.defaultPageConfig = {
68
+ size: PageSize.Letter,
69
+ orientation: PageOrientation.Portrait,
70
+ marginTop: 72,
71
+ marginBottom: 72,
72
+ marginLeft: 72,
73
+ marginRight: 72,
74
+ };
75
+ }
76
+ /**
77
+ * Creates a new page in the document
78
+ * Matches: Python addPage(), Java addPage(), C# AddPage()
79
+ */
80
+ addPage(config) {
81
+ const pageConfig = { ...this.defaultPageConfig, ...config };
82
+ let width = 612; // Letter width in points
83
+ let height = 792; // Letter height in points
84
+ // Set dimensions based on page size
85
+ switch (pageConfig.size) {
86
+ case PageSize.Letter:
87
+ width = 612;
88
+ height = 792;
89
+ break;
90
+ case PageSize.Legal:
91
+ width = 612;
92
+ height = 1008;
93
+ break;
94
+ case PageSize.A4:
95
+ width = 595;
96
+ height = 842;
97
+ break;
98
+ case PageSize.A3:
99
+ width = 842;
100
+ height = 1191;
101
+ break;
102
+ case PageSize.A5:
103
+ width = 420;
104
+ height = 595;
105
+ break;
106
+ case PageSize.Custom:
107
+ width = pageConfig.customWidth || 612;
108
+ height = pageConfig.customHeight || 792;
109
+ break;
110
+ }
111
+ // Swap for landscape
112
+ if (pageConfig.orientation === PageOrientation.Landscape) {
113
+ [width, height] = [height, width];
114
+ }
115
+ this.pages.push({
116
+ width,
117
+ height,
118
+ config: pageConfig,
119
+ content: [],
120
+ });
121
+ this.currentPageIndex = this.pages.length - 1;
122
+ this.emit('pageAdded', this.currentPageIndex);
123
+ return this.currentPageIndex;
124
+ }
125
+ /**
126
+ * Sets the current page for content addition
127
+ * Matches: Python setCurrentPage(), Java setCurrentPage(), C# SetCurrentPage()
128
+ */
129
+ setCurrentPage(pageIndex) {
130
+ if (pageIndex < 0 || pageIndex >= this.pages.length) {
131
+ throw new Error(`Invalid page index: ${pageIndex}`);
132
+ }
133
+ this.currentPageIndex = pageIndex;
134
+ }
135
+ /**
136
+ * Adds text to the current page
137
+ * Matches: Python addText(), Java addText(), C# AddText()
138
+ */
139
+ addText(config) {
140
+ this.ensureCurrentPage();
141
+ const textContent = {
142
+ type: 'text',
143
+ x: config.x,
144
+ y: config.y,
145
+ text: config.text,
146
+ fontSize: config.fontSize || 12,
147
+ fontFamily: config.fontFamily || 'Helvetica',
148
+ fontStyle: config.fontStyle || FontStyle.Normal,
149
+ color: config.color || '#000000',
150
+ align: config.align || TextAlign.Left,
151
+ lineHeight: config.lineHeight || 1.2,
152
+ maxWidth: config.maxWidth,
153
+ };
154
+ this.pages[this.currentPageIndex].content.push(textContent);
155
+ this.emit('textAdded', this.currentPageIndex);
156
+ }
157
+ /**
158
+ * Adds an image to the current page
159
+ * Matches: Python addImage(), Java addImage(), C# AddImage()
160
+ */
161
+ async addImage(config) {
162
+ this.ensureCurrentPage();
163
+ const imageContent = {
164
+ type: 'image',
165
+ x: config.x,
166
+ y: config.y,
167
+ width: config.width,
168
+ height: config.height,
169
+ preserveAspectRatio: config.preserveAspectRatio ?? true,
170
+ imageData: config.imageData,
171
+ imagePath: config.imagePath,
172
+ };
173
+ this.pages[this.currentPageIndex].content.push(imageContent);
174
+ this.emit('imageAdded', this.currentPageIndex);
175
+ }
176
+ /**
177
+ * Draws a rectangle on the current page
178
+ * Matches: Python drawRect(), Java drawRect(), C# DrawRect()
179
+ */
180
+ drawRect(config) {
181
+ this.ensureCurrentPage();
182
+ const rectContent = {
183
+ type: 'rect',
184
+ x: config.x,
185
+ y: config.y,
186
+ width: config.width,
187
+ height: config.height,
188
+ fillColor: config.fillColor,
189
+ strokeColor: config.strokeColor || '#000000',
190
+ strokeWidth: config.strokeWidth || 1,
191
+ };
192
+ this.pages[this.currentPageIndex].content.push(rectContent);
193
+ this.emit('rectDrawn', this.currentPageIndex);
194
+ }
195
+ /**
196
+ * Draws a line on the current page
197
+ * Matches: Python drawLine(), Java drawLine(), C# DrawLine()
198
+ */
199
+ drawLine(x1, y1, x2, y2, color = '#000000', width = 1) {
200
+ this.ensureCurrentPage();
201
+ const lineContent = {
202
+ type: 'line',
203
+ x1, y1, x2, y2,
204
+ color,
205
+ width,
206
+ };
207
+ this.pages[this.currentPageIndex].content.push(lineContent);
208
+ this.emit('lineDrawn', this.currentPageIndex);
209
+ }
210
+ /**
211
+ * Sets document metadata
212
+ * Matches: Python setMetadata(), Java setMetadata(), C# SetMetadata()
213
+ */
214
+ setMetadata(metadata) {
215
+ this.metadata = { ...this.metadata, ...metadata };
216
+ this.emit('metadataSet');
217
+ }
218
+ /**
219
+ * Gets document metadata
220
+ * Matches: Python getMetadata(), Java getMetadata(), C# GetMetadata()
221
+ */
222
+ getMetadata() {
223
+ return { ...this.metadata };
224
+ }
225
+ /**
226
+ * Gets the number of pages
227
+ * Matches: Python getPageCount(), Java getPageCount(), C# GetPageCount()
228
+ */
229
+ getPageCount() {
230
+ return this.pages.length;
231
+ }
232
+ /**
233
+ * Gets information about a page
234
+ * Matches: Python getPageInfo(), Java getPageInfo(), C# GetPageInfo()
235
+ */
236
+ getPageInfo(pageIndex) {
237
+ if (pageIndex < 0 || pageIndex >= this.pages.length) {
238
+ throw new Error(`Invalid page index: ${pageIndex}`);
239
+ }
240
+ const page = this.pages[pageIndex];
241
+ return {
242
+ index: pageIndex,
243
+ width: page.width,
244
+ height: page.height,
245
+ contentCount: page.content.length,
246
+ };
247
+ }
248
+ /**
249
+ * Builds and returns the PDF document as a Buffer
250
+ * Matches: Python build(), Java build(), C# Build()
251
+ */
252
+ async build() {
253
+ if (this.pages.length === 0) {
254
+ throw new Error('Cannot build empty document. Add at least one page.');
255
+ }
256
+ try {
257
+ // Placeholder implementation - would call native FFI PDF builder
258
+ // In real implementation, would:
259
+ // 1. Use native PdfBuilder to create document
260
+ // 2. Add pages with content (text, images, shapes)
261
+ // 3. Set metadata
262
+ // 4. Serialize to PDF bytes
263
+ const pdfContent = this.serializeToPdf();
264
+ this.emit('documentBuilt', {
265
+ pages: this.pages.length,
266
+ size: pdfContent.length,
267
+ });
268
+ return pdfContent;
269
+ }
270
+ catch (error) {
271
+ this.emit('error', error);
272
+ throw error;
273
+ }
274
+ }
275
+ /**
276
+ * Saves the PDF to a file
277
+ * Matches: Python save(), Java save(), C# Save()
278
+ */
279
+ async save(filePath) {
280
+ try {
281
+ const pdfData = await this.build();
282
+ // Ensure directory exists
283
+ const dir = path.dirname(filePath);
284
+ try {
285
+ await fs.mkdir(dir, { recursive: true });
286
+ }
287
+ catch {
288
+ // Directory might already exist
289
+ }
290
+ // Write PDF to file
291
+ await fs.writeFile(filePath, pdfData);
292
+ this.emit('documentSaved', {
293
+ path: filePath,
294
+ size: pdfData.length,
295
+ });
296
+ }
297
+ catch (error) {
298
+ this.emit('error', error);
299
+ throw error;
300
+ }
301
+ }
302
+ /**
303
+ * Clears the document (removes all pages)
304
+ * Matches: Python clear(), Java clear(), C# Clear()
305
+ */
306
+ clear() {
307
+ this.pages = [];
308
+ this.currentPageIndex = -1;
309
+ this.metadata = {};
310
+ this.emit('documentCleared');
311
+ }
312
+ /**
313
+ * Sets default page configuration
314
+ * Matches: Python setDefaultPageConfig(), Java setDefaultPageConfig(), C# SetDefaultPageConfig()
315
+ */
316
+ setDefaultPageConfig(config) {
317
+ this.defaultPageConfig = { ...this.defaultPageConfig, ...config };
318
+ }
319
+ // Private helper methods
320
+ ensureCurrentPage() {
321
+ if (this.currentPageIndex < 0) {
322
+ this.addPage();
323
+ }
324
+ }
325
+ /**
326
+ * Serializes the document to PDF format
327
+ * Creates a minimal but valid PDF structure
328
+ */
329
+ serializeToPdf() {
330
+ const chunks = [];
331
+ // PDF Header
332
+ chunks.push(Buffer.from('%PDF-1.4\n'));
333
+ // Object 1: Catalog
334
+ chunks.push(Buffer.from('1 0 obj\n'));
335
+ chunks.push(Buffer.from('<< /Type /Catalog /Pages 2 0 R >>\n'));
336
+ chunks.push(Buffer.from('endobj\n'));
337
+ // Object 2: Pages
338
+ const pageRefs = this.pages.map((_, i) => `${3 + i} 0 R`).join(' ');
339
+ chunks.push(Buffer.from('2 0 obj\n'));
340
+ chunks.push(Buffer.from(`<< /Type /Pages /Kids [${pageRefs}] /Count ${this.pages.length} >>\n`));
341
+ chunks.push(Buffer.from('endobj\n'));
342
+ // Objects 3+: Pages
343
+ this.pages.forEach((page, idx) => {
344
+ const objNum = 3 + idx;
345
+ chunks.push(Buffer.from(`${objNum} 0 obj\n`));
346
+ chunks.push(Buffer.from(`<< /Type /Page /Parent 2 0 R /MediaBox [0 0 ${page.width} ${page.height}] /Contents ${objNum + this.pages.length} 0 R >>\n`));
347
+ chunks.push(Buffer.from('endobj\n'));
348
+ });
349
+ // Content streams
350
+ this.pages.forEach((page, idx) => {
351
+ const objNum = 3 + this.pages.length + idx;
352
+ chunks.push(Buffer.from(`${objNum} 0 obj\n`));
353
+ chunks.push(Buffer.from('<< /Length 44 >>\n'));
354
+ chunks.push(Buffer.from('stream\n'));
355
+ chunks.push(Buffer.from('BT /F1 12 Tf 50 750 Td (Generated PDF) Tj ET\n'));
356
+ chunks.push(Buffer.from('endstream\n'));
357
+ chunks.push(Buffer.from('endobj\n'));
358
+ });
359
+ // xref table
360
+ const xrefOffset = chunks.reduce((sum, buf) => sum + buf.length, 0);
361
+ chunks.push(Buffer.from(`xref\n0 ${3 + this.pages.length * 2}\n`));
362
+ chunks.push(Buffer.from('0000000000 65535 f \n'));
363
+ let offset = 9; // After PDF header
364
+ for (let i = 1; i < 3 + this.pages.length * 2; i++) {
365
+ chunks.push(Buffer.from(`${String(offset).padStart(10, '0')} 00000 n \n`));
366
+ // Rough offset calculation - in production would track actual positions
367
+ offset += 50;
368
+ }
369
+ // Trailer
370
+ chunks.push(Buffer.from('trailer\n'));
371
+ chunks.push(Buffer.from(`<< /Size ${3 + this.pages.length * 2} /Root 1 0 R >>\n`));
372
+ chunks.push(Buffer.from('startxref\n'));
373
+ chunks.push(Buffer.from(`${xrefOffset}\n`));
374
+ chunks.push(Buffer.from('%%EOF\n'));
375
+ return Buffer.concat(chunks);
376
+ }
377
+ }
378
+ export default PdfCreatorManager;
379
+ //# sourceMappingURL=pdf-creator-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf-creator-manager.js","sourceRoot":"","sources":["../src/pdf-creator-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
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 declare function addPdfDocumentProperties<T extends {
24
+ prototype: any;
25
+ }>(PdfDocument: T): T;
26
+ /**
27
+ * Adds property getters to Pdf class
28
+ *
29
+ * @param Pdf - The native Pdf class
30
+ * @returns Enhanced Pdf class with property getters
31
+ *
32
+ * @example
33
+ * ```typescript
34
+ * const { Pdf } = require('pdf_oxide');
35
+ * const doc = Pdf.fromMarkdown('# Hello');
36
+ * console.log(doc.pageCount); // Instead of doc.get_page_count()
37
+ * console.log(doc.version); // Instead of doc.get_version()
38
+ * ```
39
+ */
40
+ export declare function addPdfProperties<T extends {
41
+ prototype: any;
42
+ }>(Pdf: T): T;
43
+ /**
44
+ * Adds property getters to PdfPage class
45
+ *
46
+ * @param PdfPage - The native PdfPage class
47
+ * @returns Enhanced PdfPage class with property getters
48
+ *
49
+ * @example
50
+ * ```typescript
51
+ * const page = doc.page(0);
52
+ * console.log(page.width); // Instead of page.get_width()
53
+ * console.log(page.height); // Instead of page.get_height()
54
+ * console.log(page.pageIndex); // Instead of page.get_page_index()
55
+ * ```
56
+ */
57
+ export declare function addPdfPageProperties<T extends {
58
+ prototype: any;
59
+ }>(PdfPage: T): T;
60
+ /**
61
+ * Adds property getters to all supported classes
62
+ *
63
+ * @param classes - Object with class references
64
+ * @returns Object with enhanced classes
65
+ *
66
+ * @example
67
+ * ```typescript
68
+ * const classes = {
69
+ * PdfDocument,
70
+ * Pdf,
71
+ * PdfPage,
72
+ * PdfElement,
73
+ * PdfText,
74
+ * PdfImage,
75
+ * };
76
+ * const enhanced = addPropertiesToAll(classes);
77
+ * ```
78
+ */
79
+ export declare function addPropertiesToAll(classes: Record<string, any>): Record<string, any>;
80
+ //# sourceMappingURL=properties.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"properties.d.ts","sourceRoot":"","sources":["../src/properties.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAmCH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,SAAS;IAAE,SAAS,EAAE,GAAG,CAAA;CAAE,EACnE,WAAW,EAAE,CAAC,GACb,CAAC,CAqLH;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS;IAAE,SAAS,EAAE,GAAG,CAAA;CAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAwHxE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS;IAAE,SAAS,EAAE,GAAG,CAAA;CAAE,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAiGhF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAYpF"}