@lexmata/micropdf 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +191 -0
- package/README.md +985 -0
- package/binding.gyp +73 -0
- package/dist/annot.d.ts +458 -0
- package/dist/annot.d.ts.map +1 -0
- package/dist/annot.js +697 -0
- package/dist/annot.js.map +1 -0
- package/dist/archive.d.ts +128 -0
- package/dist/archive.d.ts.map +1 -0
- package/dist/archive.js +268 -0
- package/dist/archive.js.map +1 -0
- package/dist/buffer.d.ts +572 -0
- package/dist/buffer.d.ts.map +1 -0
- package/dist/buffer.js +971 -0
- package/dist/buffer.js.map +1 -0
- package/dist/colorspace.d.ts +287 -0
- package/dist/colorspace.d.ts.map +1 -0
- package/dist/colorspace.js +542 -0
- package/dist/colorspace.js.map +1 -0
- package/dist/context.d.ts +184 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +320 -0
- package/dist/context.js.map +1 -0
- package/dist/cookie.d.ts +164 -0
- package/dist/cookie.d.ts.map +1 -0
- package/dist/cookie.js +306 -0
- package/dist/cookie.js.map +1 -0
- package/dist/device.d.ts +169 -0
- package/dist/device.d.ts.map +1 -0
- package/dist/device.js +350 -0
- package/dist/device.js.map +1 -0
- package/dist/display-list.d.ts +202 -0
- package/dist/display-list.d.ts.map +1 -0
- package/dist/display-list.js +410 -0
- package/dist/display-list.js.map +1 -0
- package/dist/document.d.ts +637 -0
- package/dist/document.d.ts.map +1 -0
- package/dist/document.js +902 -0
- package/dist/document.js.map +1 -0
- package/dist/easy.d.ts +423 -0
- package/dist/easy.d.ts.map +1 -0
- package/dist/easy.js +644 -0
- package/dist/easy.js.map +1 -0
- package/dist/enhanced.d.ts +226 -0
- package/dist/enhanced.d.ts.map +1 -0
- package/dist/enhanced.js +368 -0
- package/dist/enhanced.js.map +1 -0
- package/dist/filter.d.ts +51 -0
- package/dist/filter.d.ts.map +1 -0
- package/dist/filter.js +381 -0
- package/dist/filter.js.map +1 -0
- package/dist/font.d.ts +222 -0
- package/dist/font.d.ts.map +1 -0
- package/dist/font.js +381 -0
- package/dist/font.js.map +1 -0
- package/dist/form.d.ts +214 -0
- package/dist/form.d.ts.map +1 -0
- package/dist/form.js +497 -0
- package/dist/form.js.map +1 -0
- package/dist/geometry.d.ts +469 -0
- package/dist/geometry.d.ts.map +1 -0
- package/dist/geometry.js +780 -0
- package/dist/geometry.js.map +1 -0
- package/dist/image.d.ts +172 -0
- package/dist/image.d.ts.map +1 -0
- package/dist/image.js +348 -0
- package/dist/image.js.map +1 -0
- package/dist/index.d.ts +171 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +339 -0
- package/dist/index.js.map +1 -0
- package/dist/link.d.ts +168 -0
- package/dist/link.d.ts.map +1 -0
- package/dist/link.js +343 -0
- package/dist/link.js.map +1 -0
- package/dist/micropdf.d.ts +40 -0
- package/dist/micropdf.d.ts.map +1 -0
- package/dist/micropdf.js +45 -0
- package/dist/micropdf.js.map +1 -0
- package/dist/nanopdf.d.ts +40 -0
- package/dist/nanopdf.d.ts.map +1 -0
- package/dist/nanopdf.js +45 -0
- package/dist/nanopdf.js.map +1 -0
- package/dist/native.d.ts +242 -0
- package/dist/native.d.ts.map +1 -0
- package/dist/native.js +509 -0
- package/dist/native.js.map +1 -0
- package/dist/output.d.ts +166 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +365 -0
- package/dist/output.js.map +1 -0
- package/dist/path.d.ts +420 -0
- package/dist/path.d.ts.map +1 -0
- package/dist/path.js +687 -0
- package/dist/path.js.map +1 -0
- package/dist/pdf/object.d.ts +489 -0
- package/dist/pdf/object.d.ts.map +1 -0
- package/dist/pdf/object.js +1045 -0
- package/dist/pdf/object.js.map +1 -0
- package/dist/pixmap.d.ts +315 -0
- package/dist/pixmap.d.ts.map +1 -0
- package/dist/pixmap.js +590 -0
- package/dist/pixmap.js.map +1 -0
- package/dist/profiler.d.ts +159 -0
- package/dist/profiler.d.ts.map +1 -0
- package/dist/profiler.js +380 -0
- package/dist/profiler.js.map +1 -0
- package/dist/render-options.d.ts +227 -0
- package/dist/render-options.d.ts.map +1 -0
- package/dist/render-options.js +130 -0
- package/dist/render-options.js.map +1 -0
- package/dist/resource-tracking.d.ts +332 -0
- package/dist/resource-tracking.d.ts.map +1 -0
- package/dist/resource-tracking.js +653 -0
- package/dist/resource-tracking.js.map +1 -0
- package/dist/simple.d.ts +276 -0
- package/dist/simple.d.ts.map +1 -0
- package/dist/simple.js +343 -0
- package/dist/simple.js.map +1 -0
- package/dist/stext.d.ts +290 -0
- package/dist/stext.d.ts.map +1 -0
- package/dist/stext.js +312 -0
- package/dist/stext.js.map +1 -0
- package/dist/stream.d.ts +174 -0
- package/dist/stream.d.ts.map +1 -0
- package/dist/stream.js +476 -0
- package/dist/stream.js.map +1 -0
- package/dist/text.d.ts +337 -0
- package/dist/text.d.ts.map +1 -0
- package/dist/text.js +454 -0
- package/dist/text.js.map +1 -0
- package/dist/typed-arrays.d.ts +127 -0
- package/dist/typed-arrays.d.ts.map +1 -0
- package/dist/typed-arrays.js +410 -0
- package/dist/typed-arrays.js.map +1 -0
- package/dist/types.d.ts +358 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +216 -0
- package/dist/types.js.map +1 -0
- package/native/annot.cc +557 -0
- package/native/buffer.cc +204 -0
- package/native/colorspace.cc +166 -0
- package/native/context.cc +84 -0
- package/native/cookie.cc +179 -0
- package/native/device.cc +179 -0
- package/native/display_list.cc +179 -0
- package/native/document.cc +268 -0
- package/native/enhanced.cc +70 -0
- package/native/font.cc +282 -0
- package/native/form.cc +523 -0
- package/native/geometry.cc +255 -0
- package/native/image.cc +216 -0
- package/native/include/micropdf/enhanced.h +38 -0
- package/native/include/micropdf/types.h +36 -0
- package/native/include/micropdf.h +106 -0
- package/native/include/mupdf-ffi.h +39 -0
- package/native/include/mupdf.h +11 -0
- package/native/include/mupdf_minimal.h +381 -0
- package/native/lib/linux-x64/libmicropdf.a +0 -0
- package/native/link.cc +234 -0
- package/native/micropdf.cc +71 -0
- package/native/output.cc +229 -0
- package/native/page.cc +572 -0
- package/native/path.cc +259 -0
- package/native/pixmap.cc +240 -0
- package/native/stext.cc +610 -0
- package/native/stream.cc +239 -0
- package/package.json +120 -0
- package/scripts/build-from-rust.js +97 -0
- package/scripts/install.js +184 -0
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Advanced Rendering Options
|
|
3
|
+
*
|
|
4
|
+
* Provides fine-grained control over PDF rendering quality, colorspace,
|
|
5
|
+
* and performance characteristics.
|
|
6
|
+
*/
|
|
7
|
+
import type { Colorspace } from './colorspace.js';
|
|
8
|
+
import type { Matrix } from './geometry.js';
|
|
9
|
+
/**
|
|
10
|
+
* Anti-aliasing level
|
|
11
|
+
*
|
|
12
|
+
* Controls the quality of anti-aliasing applied during rendering.
|
|
13
|
+
* Higher levels produce smoother output but are slower.
|
|
14
|
+
*/
|
|
15
|
+
export declare enum AntiAliasLevel {
|
|
16
|
+
/** No anti-aliasing - fastest, lowest quality */
|
|
17
|
+
None = 0,
|
|
18
|
+
/** Low anti-aliasing - 2x2 sampling */
|
|
19
|
+
Low = 2,
|
|
20
|
+
/** Medium anti-aliasing - 4x4 sampling */
|
|
21
|
+
Medium = 4,
|
|
22
|
+
/** High anti-aliasing - 8x8 sampling - best quality, slowest */
|
|
23
|
+
High = 8
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Rendering options
|
|
27
|
+
*
|
|
28
|
+
* Configures how a PDF page is rendered to a pixmap.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* const options: RenderOptions = {
|
|
33
|
+
* dpi: 300,
|
|
34
|
+
* colorspace: Colorspace.deviceRGB(),
|
|
35
|
+
* alpha: true,
|
|
36
|
+
* antiAlias: AntiAliasLevel.High
|
|
37
|
+
* };
|
|
38
|
+
*
|
|
39
|
+
* const pixmap = page.renderWithOptions(options);
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export interface RenderOptions {
|
|
43
|
+
/**
|
|
44
|
+
* Resolution in dots per inch
|
|
45
|
+
*
|
|
46
|
+
* Common values:
|
|
47
|
+
* - 72: Screen resolution (1:1)
|
|
48
|
+
* - 150: Low-quality print
|
|
49
|
+
* - 300: Standard print quality
|
|
50
|
+
* - 600: High-quality print
|
|
51
|
+
*
|
|
52
|
+
* @default 72
|
|
53
|
+
*/
|
|
54
|
+
dpi?: number;
|
|
55
|
+
/**
|
|
56
|
+
* Target colorspace
|
|
57
|
+
*
|
|
58
|
+
* Determines the color model of the output pixmap.
|
|
59
|
+
*
|
|
60
|
+
* @default Colorspace.deviceRGB()
|
|
61
|
+
*/
|
|
62
|
+
colorspace?: Colorspace;
|
|
63
|
+
/**
|
|
64
|
+
* Include alpha channel
|
|
65
|
+
*
|
|
66
|
+
* If true, the output pixmap will have an alpha (transparency) channel.
|
|
67
|
+
*
|
|
68
|
+
* @default false
|
|
69
|
+
*/
|
|
70
|
+
alpha?: boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Anti-aliasing level
|
|
73
|
+
*
|
|
74
|
+
* Controls the quality of anti-aliasing applied during rendering.
|
|
75
|
+
*
|
|
76
|
+
* @default AntiAliasLevel.High
|
|
77
|
+
*/
|
|
78
|
+
antiAlias?: AntiAliasLevel;
|
|
79
|
+
/**
|
|
80
|
+
* Transformation matrix
|
|
81
|
+
*
|
|
82
|
+
* Optional matrix to transform the page before rendering.
|
|
83
|
+
* If provided, DPI is ignored.
|
|
84
|
+
*/
|
|
85
|
+
transform?: Matrix;
|
|
86
|
+
/**
|
|
87
|
+
* Render annotations
|
|
88
|
+
*
|
|
89
|
+
* If true, annotations will be rendered on the page.
|
|
90
|
+
*
|
|
91
|
+
* @default true
|
|
92
|
+
*/
|
|
93
|
+
renderAnnotations?: boolean;
|
|
94
|
+
/**
|
|
95
|
+
* Render form fields
|
|
96
|
+
*
|
|
97
|
+
* If true, form fields will be rendered on the page.
|
|
98
|
+
*
|
|
99
|
+
* @default true
|
|
100
|
+
*/
|
|
101
|
+
renderFormFields?: boolean;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Render progress callback
|
|
105
|
+
*
|
|
106
|
+
* Called periodically during rendering to report progress.
|
|
107
|
+
*
|
|
108
|
+
* @param current - Current progress value
|
|
109
|
+
* @param total - Total progress value
|
|
110
|
+
* @returns true to continue rendering, false to abort
|
|
111
|
+
*/
|
|
112
|
+
export type RenderProgressCallback = (current: number, total: number) => boolean;
|
|
113
|
+
/**
|
|
114
|
+
* Render error callback
|
|
115
|
+
*
|
|
116
|
+
* Called when an error occurs during rendering.
|
|
117
|
+
*
|
|
118
|
+
* @param error - Error message
|
|
119
|
+
*/
|
|
120
|
+
export type RenderErrorCallback = (error: string) => void;
|
|
121
|
+
/**
|
|
122
|
+
* Extended rendering options with progress tracking
|
|
123
|
+
*
|
|
124
|
+
* Adds progress and error callbacks for long-running render operations.
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* ```typescript
|
|
128
|
+
* const options: ExtendedRenderOptions = {
|
|
129
|
+
* dpi: 300,
|
|
130
|
+
* alpha: true,
|
|
131
|
+
* onProgress: (current, total) => {
|
|
132
|
+
* console.log(`Rendering: ${current}/${total}`);
|
|
133
|
+
* return true; // Continue
|
|
134
|
+
* },
|
|
135
|
+
* onError: (error) => {
|
|
136
|
+
* console.error('Render error:', error);
|
|
137
|
+
* }
|
|
138
|
+
* };
|
|
139
|
+
* ```
|
|
140
|
+
*/
|
|
141
|
+
export interface ExtendedRenderOptions extends RenderOptions {
|
|
142
|
+
/**
|
|
143
|
+
* Progress callback
|
|
144
|
+
*
|
|
145
|
+
* Called periodically during rendering to report progress.
|
|
146
|
+
* Return false to abort rendering.
|
|
147
|
+
*/
|
|
148
|
+
onProgress?: RenderProgressCallback;
|
|
149
|
+
/**
|
|
150
|
+
* Error callback
|
|
151
|
+
*
|
|
152
|
+
* Called when an error occurs during rendering.
|
|
153
|
+
*/
|
|
154
|
+
onError?: RenderErrorCallback;
|
|
155
|
+
/**
|
|
156
|
+
* Timeout in milliseconds
|
|
157
|
+
*
|
|
158
|
+
* If rendering takes longer than this, it will be aborted.
|
|
159
|
+
*
|
|
160
|
+
* @default undefined (no timeout)
|
|
161
|
+
*/
|
|
162
|
+
timeout?: number;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Get default render options
|
|
166
|
+
*
|
|
167
|
+
* @returns Default rendering options
|
|
168
|
+
*
|
|
169
|
+
* @example
|
|
170
|
+
* ```typescript
|
|
171
|
+
* const defaults = getDefaultRenderOptions();
|
|
172
|
+
* const custom = { ...defaults, dpi: 300 };
|
|
173
|
+
* ```
|
|
174
|
+
*/
|
|
175
|
+
export declare function getDefaultRenderOptions(): RenderOptions;
|
|
176
|
+
/**
|
|
177
|
+
* Calculate scale matrix from DPI
|
|
178
|
+
*
|
|
179
|
+
* @param dpi - Target resolution in dots per inch
|
|
180
|
+
* @returns Scale factor
|
|
181
|
+
*
|
|
182
|
+
* @example
|
|
183
|
+
* ```typescript
|
|
184
|
+
* const scale = dpiToScale(300); // 4.166... (300/72)
|
|
185
|
+
* ```
|
|
186
|
+
*/
|
|
187
|
+
export declare function dpiToScale(dpi: number): number;
|
|
188
|
+
/**
|
|
189
|
+
* Calculate DPI from scale matrix
|
|
190
|
+
*
|
|
191
|
+
* @param scale - Scale factor
|
|
192
|
+
* @returns Resolution in dots per inch
|
|
193
|
+
*
|
|
194
|
+
* @example
|
|
195
|
+
* ```typescript
|
|
196
|
+
* const dpi = scaleToDpi(2.0); // 144 (72 * 2)
|
|
197
|
+
* ```
|
|
198
|
+
*/
|
|
199
|
+
export declare function scaleToDpi(scale: number): number;
|
|
200
|
+
/**
|
|
201
|
+
* Validate render options
|
|
202
|
+
*
|
|
203
|
+
* Checks that all options are within valid ranges.
|
|
204
|
+
*
|
|
205
|
+
* @param options - Options to validate
|
|
206
|
+
* @throws Error if options are invalid
|
|
207
|
+
*
|
|
208
|
+
* @example
|
|
209
|
+
* ```typescript
|
|
210
|
+
* validateRenderOptions({ dpi: 300, alpha: true });
|
|
211
|
+
* ```
|
|
212
|
+
*/
|
|
213
|
+
export declare function validateRenderOptions(options: RenderOptions): void;
|
|
214
|
+
/**
|
|
215
|
+
* Merge render options with defaults
|
|
216
|
+
*
|
|
217
|
+
* @param options - User-provided options
|
|
218
|
+
* @returns Complete options with defaults filled in
|
|
219
|
+
*
|
|
220
|
+
* @example
|
|
221
|
+
* ```typescript
|
|
222
|
+
* const options = mergeRenderOptions({ dpi: 300 });
|
|
223
|
+
* // { dpi: 300, alpha: false, antiAlias: 8, ... }
|
|
224
|
+
* ```
|
|
225
|
+
*/
|
|
226
|
+
export declare function mergeRenderOptions(options: RenderOptions): Required<RenderOptions>;
|
|
227
|
+
//# sourceMappingURL=render-options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-options.d.ts","sourceRoot":"","sources":["../src/render-options.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C;;;;;GAKG;AACH,oBAAY,cAAc;IACxB,iDAAiD;IACjD,IAAI,IAAI;IACR,uCAAuC;IACvC,GAAG,IAAI;IACP,0CAA0C;IAC1C,MAAM,IAAI;IACV,gEAAgE;IAChE,IAAI,IAAI;CACT;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;;;;;;OAUG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;AAEjF;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IAC1D;;;;;OAKG;IACH,UAAU,CAAC,EAAE,sBAAsB,CAAC;IAEpC;;;;OAIG;IACH,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAE9B;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,IAAI,aAAa,CAQvD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAqBlE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,CAWlF"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Advanced Rendering Options
|
|
3
|
+
*
|
|
4
|
+
* Provides fine-grained control over PDF rendering quality, colorspace,
|
|
5
|
+
* and performance characteristics.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Anti-aliasing level
|
|
9
|
+
*
|
|
10
|
+
* Controls the quality of anti-aliasing applied during rendering.
|
|
11
|
+
* Higher levels produce smoother output but are slower.
|
|
12
|
+
*/
|
|
13
|
+
export var AntiAliasLevel;
|
|
14
|
+
(function (AntiAliasLevel) {
|
|
15
|
+
/** No anti-aliasing - fastest, lowest quality */
|
|
16
|
+
AntiAliasLevel[AntiAliasLevel["None"] = 0] = "None";
|
|
17
|
+
/** Low anti-aliasing - 2x2 sampling */
|
|
18
|
+
AntiAliasLevel[AntiAliasLevel["Low"] = 2] = "Low";
|
|
19
|
+
/** Medium anti-aliasing - 4x4 sampling */
|
|
20
|
+
AntiAliasLevel[AntiAliasLevel["Medium"] = 4] = "Medium";
|
|
21
|
+
/** High anti-aliasing - 8x8 sampling - best quality, slowest */
|
|
22
|
+
AntiAliasLevel[AntiAliasLevel["High"] = 8] = "High";
|
|
23
|
+
})(AntiAliasLevel || (AntiAliasLevel = {}));
|
|
24
|
+
/**
|
|
25
|
+
* Get default render options
|
|
26
|
+
*
|
|
27
|
+
* @returns Default rendering options
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* const defaults = getDefaultRenderOptions();
|
|
32
|
+
* const custom = { ...defaults, dpi: 300 };
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export function getDefaultRenderOptions() {
|
|
36
|
+
return {
|
|
37
|
+
dpi: 72,
|
|
38
|
+
alpha: false,
|
|
39
|
+
antiAlias: AntiAliasLevel.High,
|
|
40
|
+
renderAnnotations: true,
|
|
41
|
+
renderFormFields: true
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Calculate scale matrix from DPI
|
|
46
|
+
*
|
|
47
|
+
* @param dpi - Target resolution in dots per inch
|
|
48
|
+
* @returns Scale factor
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```typescript
|
|
52
|
+
* const scale = dpiToScale(300); // 4.166... (300/72)
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export function dpiToScale(dpi) {
|
|
56
|
+
return dpi / 72.0;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Calculate DPI from scale matrix
|
|
60
|
+
*
|
|
61
|
+
* @param scale - Scale factor
|
|
62
|
+
* @returns Resolution in dots per inch
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```typescript
|
|
66
|
+
* const dpi = scaleToDpi(2.0); // 144 (72 * 2)
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
export function scaleToDpi(scale) {
|
|
70
|
+
return scale * 72.0;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Validate render options
|
|
74
|
+
*
|
|
75
|
+
* Checks that all options are within valid ranges.
|
|
76
|
+
*
|
|
77
|
+
* @param options - Options to validate
|
|
78
|
+
* @throws Error if options are invalid
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```typescript
|
|
82
|
+
* validateRenderOptions({ dpi: 300, alpha: true });
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
export function validateRenderOptions(options) {
|
|
86
|
+
if (options.dpi !== undefined) {
|
|
87
|
+
if (options.dpi <= 0) {
|
|
88
|
+
throw new Error('DPI must be positive');
|
|
89
|
+
}
|
|
90
|
+
if (options.dpi > 2400) {
|
|
91
|
+
throw new Error('DPI too high (max 2400)');
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if (options.antiAlias !== undefined) {
|
|
95
|
+
const validLevels = [
|
|
96
|
+
AntiAliasLevel.None,
|
|
97
|
+
AntiAliasLevel.Low,
|
|
98
|
+
AntiAliasLevel.Medium,
|
|
99
|
+
AntiAliasLevel.High
|
|
100
|
+
];
|
|
101
|
+
if (!validLevels.includes(options.antiAlias)) {
|
|
102
|
+
throw new Error(`Invalid anti-alias level: ${options.antiAlias}`);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Merge render options with defaults
|
|
108
|
+
*
|
|
109
|
+
* @param options - User-provided options
|
|
110
|
+
* @returns Complete options with defaults filled in
|
|
111
|
+
*
|
|
112
|
+
* @example
|
|
113
|
+
* ```typescript
|
|
114
|
+
* const options = mergeRenderOptions({ dpi: 300 });
|
|
115
|
+
* // { dpi: 300, alpha: false, antiAlias: 8, ... }
|
|
116
|
+
* ```
|
|
117
|
+
*/
|
|
118
|
+
export function mergeRenderOptions(options) {
|
|
119
|
+
const defaults = getDefaultRenderOptions();
|
|
120
|
+
return {
|
|
121
|
+
dpi: options.dpi ?? defaults.dpi,
|
|
122
|
+
colorspace: options.colorspace ?? defaults.colorspace,
|
|
123
|
+
alpha: options.alpha ?? defaults.alpha,
|
|
124
|
+
antiAlias: options.antiAlias ?? defaults.antiAlias,
|
|
125
|
+
transform: options.transform ?? defaults.transform,
|
|
126
|
+
renderAnnotations: options.renderAnnotations ?? defaults.renderAnnotations,
|
|
127
|
+
renderFormFields: options.renderFormFields ?? defaults.renderFormFields
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=render-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-options.js","sourceRoot":"","sources":["../src/render-options.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH;;;;;GAKG;AACH,MAAM,CAAN,IAAY,cASX;AATD,WAAY,cAAc;IACxB,iDAAiD;IACjD,mDAAQ,CAAA;IACR,uCAAuC;IACvC,iDAAO,CAAA;IACP,0CAA0C;IAC1C,uDAAU,CAAA;IACV,gEAAgE;IAChE,mDAAQ,CAAA;AACV,CAAC,EATW,cAAc,KAAd,cAAc,QASzB;AAyJD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO;QACL,GAAG,EAAE,EAAE;QACP,KAAK,EAAE,KAAK;QACZ,SAAS,EAAE,cAAc,CAAC,IAAI;QAC9B,iBAAiB,EAAE,IAAI;QACvB,gBAAgB,EAAE,IAAI;KACvB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,OAAO,GAAG,GAAG,IAAI,CAAC;AACpB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,OAAO,KAAK,GAAG,IAAI,CAAC;AACtB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAsB;IAC1D,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAC9B,IAAI,OAAO,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,OAAO,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,WAAW,GAAG;YAClB,cAAc,CAAC,IAAI;YACnB,cAAc,CAAC,GAAG;YAClB,cAAc,CAAC,MAAM;YACrB,cAAc,CAAC,IAAI;SACpB,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,6BAA6B,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAsB;IACvD,MAAM,QAAQ,GAAG,uBAAuB,EAAE,CAAC;IAC3C,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAI;QACjC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAW;QACtD,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAM;QACvC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAU;QACnD,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAU;QACnD,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,IAAI,QAAQ,CAAC,iBAAkB;QAC3E,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,QAAQ,CAAC,gBAAiB;KACzE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resource Tracking and Memory Optimization for MicroPDF
|
|
3
|
+
*
|
|
4
|
+
* This module provides:
|
|
5
|
+
* - FinalizationRegistry-based handle tracking for leak detection
|
|
6
|
+
* - Object pools for geometry types (Point, Rect, Matrix, Quad)
|
|
7
|
+
* - WeakRef-based leak detection warnings
|
|
8
|
+
* - Buffer optimization utilities
|
|
9
|
+
*
|
|
10
|
+
* @module resource-tracking
|
|
11
|
+
*/
|
|
12
|
+
import { Point, Rect, Matrix, Quad } from './geometry.js';
|
|
13
|
+
/**
|
|
14
|
+
* Resource types that can be tracked
|
|
15
|
+
*/
|
|
16
|
+
export declare enum ResourceType {
|
|
17
|
+
Context = "Context",
|
|
18
|
+
Buffer = "Buffer",
|
|
19
|
+
Stream = "Stream",
|
|
20
|
+
Pixmap = "Pixmap",
|
|
21
|
+
Document = "Document",
|
|
22
|
+
Page = "Page",
|
|
23
|
+
Font = "Font",
|
|
24
|
+
Image = "Image",
|
|
25
|
+
Path = "Path",
|
|
26
|
+
Text = "Text",
|
|
27
|
+
Device = "Device",
|
|
28
|
+
DisplayList = "DisplayList",
|
|
29
|
+
Colorspace = "Colorspace",
|
|
30
|
+
PdfObject = "PdfObject",
|
|
31
|
+
Annotation = "Annotation",
|
|
32
|
+
Link = "Link",
|
|
33
|
+
Outline = "Outline",
|
|
34
|
+
Cookie = "Cookie",
|
|
35
|
+
Archive = "Archive",
|
|
36
|
+
StextPage = "StextPage",
|
|
37
|
+
Other = "Other"
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Information about a tracked allocation
|
|
41
|
+
*/
|
|
42
|
+
export interface AllocationInfo {
|
|
43
|
+
handle: number;
|
|
44
|
+
type: ResourceType;
|
|
45
|
+
createdAt: number;
|
|
46
|
+
stackTrace?: string | undefined;
|
|
47
|
+
tag?: string | undefined;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Statistics for a resource type
|
|
51
|
+
*/
|
|
52
|
+
export interface TypeStats {
|
|
53
|
+
currentCount: number;
|
|
54
|
+
totalAllocated: number;
|
|
55
|
+
totalDeallocated: number;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Global tracking statistics
|
|
59
|
+
*/
|
|
60
|
+
export interface GlobalStats {
|
|
61
|
+
totalHandlesCreated: number;
|
|
62
|
+
totalHandlesDestroyed: number;
|
|
63
|
+
currentHandles: number;
|
|
64
|
+
peakHandles: number;
|
|
65
|
+
leakWarnings: number;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Global handle registry for tracking unreleased resources
|
|
69
|
+
*/
|
|
70
|
+
declare class HandleRegistry {
|
|
71
|
+
private registry;
|
|
72
|
+
private allocations;
|
|
73
|
+
private weakRefs;
|
|
74
|
+
private stats;
|
|
75
|
+
private typeStats;
|
|
76
|
+
private enabled;
|
|
77
|
+
private captureStacks;
|
|
78
|
+
private leakWarnings;
|
|
79
|
+
constructor();
|
|
80
|
+
/**
|
|
81
|
+
* Enable or disable resource tracking
|
|
82
|
+
*/
|
|
83
|
+
setEnabled(enabled: boolean): void;
|
|
84
|
+
/**
|
|
85
|
+
* Check if tracking is enabled
|
|
86
|
+
*/
|
|
87
|
+
isEnabled(): boolean;
|
|
88
|
+
/**
|
|
89
|
+
* Enable or disable stack trace capture (expensive)
|
|
90
|
+
*/
|
|
91
|
+
setCaptureStacks(capture: boolean): void;
|
|
92
|
+
/**
|
|
93
|
+
* Register an object for tracking
|
|
94
|
+
*/
|
|
95
|
+
register(target: object, handle: number, type: ResourceType, tag?: string): void;
|
|
96
|
+
/**
|
|
97
|
+
* Unregister an object (called when properly disposed)
|
|
98
|
+
*/
|
|
99
|
+
unregister(target: object, handle: number): void;
|
|
100
|
+
/**
|
|
101
|
+
* Called when an object is garbage collected without being properly disposed
|
|
102
|
+
*/
|
|
103
|
+
private handleFinalized;
|
|
104
|
+
/**
|
|
105
|
+
* Get current global statistics
|
|
106
|
+
*/
|
|
107
|
+
getStats(): GlobalStats;
|
|
108
|
+
/**
|
|
109
|
+
* Get statistics by resource type
|
|
110
|
+
*/
|
|
111
|
+
getTypeStats(): Map<ResourceType, TypeStats>;
|
|
112
|
+
/**
|
|
113
|
+
* Get all current allocations
|
|
114
|
+
*/
|
|
115
|
+
getAllocations(): AllocationInfo[];
|
|
116
|
+
/**
|
|
117
|
+
* Get potential leaks (allocations older than threshold)
|
|
118
|
+
*/
|
|
119
|
+
getPotentialLeaks(minAgeMs: number): AllocationInfo[];
|
|
120
|
+
/**
|
|
121
|
+
* Get and clear leak warnings
|
|
122
|
+
*/
|
|
123
|
+
getLeakWarnings(): string[];
|
|
124
|
+
/**
|
|
125
|
+
* Reset all tracking data
|
|
126
|
+
*/
|
|
127
|
+
reset(): void;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Global handle registry instance
|
|
131
|
+
*/
|
|
132
|
+
export declare const handleRegistry: HandleRegistry;
|
|
133
|
+
/**
|
|
134
|
+
* Enable resource tracking
|
|
135
|
+
*/
|
|
136
|
+
export declare function enableTracking(enabled: boolean): void;
|
|
137
|
+
/**
|
|
138
|
+
* Enable stack trace capture for allocations
|
|
139
|
+
*/
|
|
140
|
+
export declare function enableStackTraces(enabled: boolean): void;
|
|
141
|
+
/**
|
|
142
|
+
* Check if tracking is enabled
|
|
143
|
+
*/
|
|
144
|
+
export declare function isTrackingEnabled(): boolean;
|
|
145
|
+
/**
|
|
146
|
+
* Generic object pool
|
|
147
|
+
*/
|
|
148
|
+
declare class ObjectPool<T> {
|
|
149
|
+
private pool;
|
|
150
|
+
private maxSize;
|
|
151
|
+
private factory;
|
|
152
|
+
private reset;
|
|
153
|
+
private hits;
|
|
154
|
+
private misses;
|
|
155
|
+
private returns;
|
|
156
|
+
constructor(factory: () => T, reset: (obj: T) => void, maxSize?: number);
|
|
157
|
+
/**
|
|
158
|
+
* Get an object from the pool or create a new one
|
|
159
|
+
*/
|
|
160
|
+
acquire(): T;
|
|
161
|
+
/**
|
|
162
|
+
* Return an object to the pool
|
|
163
|
+
*/
|
|
164
|
+
release(obj: T): void;
|
|
165
|
+
/**
|
|
166
|
+
* Get pool statistics
|
|
167
|
+
*/
|
|
168
|
+
getStats(): {
|
|
169
|
+
size: number;
|
|
170
|
+
hits: number;
|
|
171
|
+
misses: number;
|
|
172
|
+
returns: number;
|
|
173
|
+
hitRate: number;
|
|
174
|
+
};
|
|
175
|
+
/**
|
|
176
|
+
* Clear the pool
|
|
177
|
+
*/
|
|
178
|
+
clear(): void;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Mutable Point for pooling (internal use only)
|
|
182
|
+
*/
|
|
183
|
+
declare class MutablePoint {
|
|
184
|
+
x: number;
|
|
185
|
+
y: number;
|
|
186
|
+
reset(): void;
|
|
187
|
+
toPoint(): Point;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Mutable Rect for pooling (internal use only)
|
|
191
|
+
*/
|
|
192
|
+
declare class MutableRect {
|
|
193
|
+
x0: number;
|
|
194
|
+
y0: number;
|
|
195
|
+
x1: number;
|
|
196
|
+
y1: number;
|
|
197
|
+
reset(): void;
|
|
198
|
+
toRect(): Rect;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Mutable Matrix for pooling (internal use only)
|
|
202
|
+
*/
|
|
203
|
+
declare class MutableMatrix {
|
|
204
|
+
a: number;
|
|
205
|
+
b: number;
|
|
206
|
+
c: number;
|
|
207
|
+
d: number;
|
|
208
|
+
e: number;
|
|
209
|
+
f: number;
|
|
210
|
+
reset(): void;
|
|
211
|
+
toMatrix(): Matrix;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Mutable Quad for pooling (internal use only)
|
|
215
|
+
*/
|
|
216
|
+
declare class MutableQuad {
|
|
217
|
+
ulX: number;
|
|
218
|
+
ulY: number;
|
|
219
|
+
urX: number;
|
|
220
|
+
urY: number;
|
|
221
|
+
llX: number;
|
|
222
|
+
llY: number;
|
|
223
|
+
lrX: number;
|
|
224
|
+
lrY: number;
|
|
225
|
+
reset(): void;
|
|
226
|
+
toQuad(): Quad;
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Acquire a mutable point from the pool
|
|
230
|
+
*/
|
|
231
|
+
export declare function acquirePoint(): MutablePoint;
|
|
232
|
+
/**
|
|
233
|
+
* Release a mutable point back to the pool
|
|
234
|
+
*/
|
|
235
|
+
export declare function releasePoint(p: MutablePoint): void;
|
|
236
|
+
/**
|
|
237
|
+
* Acquire a mutable rect from the pool
|
|
238
|
+
*/
|
|
239
|
+
export declare function acquireRect(): MutableRect;
|
|
240
|
+
/**
|
|
241
|
+
* Release a mutable rect back to the pool
|
|
242
|
+
*/
|
|
243
|
+
export declare function releaseRect(r: MutableRect): void;
|
|
244
|
+
/**
|
|
245
|
+
* Acquire a mutable matrix from the pool
|
|
246
|
+
*/
|
|
247
|
+
export declare function acquireMatrix(): MutableMatrix;
|
|
248
|
+
/**
|
|
249
|
+
* Release a mutable matrix back to the pool
|
|
250
|
+
*/
|
|
251
|
+
export declare function releaseMatrix(m: MutableMatrix): void;
|
|
252
|
+
/**
|
|
253
|
+
* Acquire a mutable quad from the pool
|
|
254
|
+
*/
|
|
255
|
+
export declare function acquireQuad(): MutableQuad;
|
|
256
|
+
/**
|
|
257
|
+
* Release a mutable quad back to the pool
|
|
258
|
+
*/
|
|
259
|
+
export declare function releaseQuad(q: MutableQuad): void;
|
|
260
|
+
/**
|
|
261
|
+
* Get pool statistics
|
|
262
|
+
*/
|
|
263
|
+
export declare function getPoolStats(): Record<string, ReturnType<ObjectPool<unknown>['getStats']>>;
|
|
264
|
+
/**
|
|
265
|
+
* Clear all pools
|
|
266
|
+
*/
|
|
267
|
+
export declare function clearPools(): void;
|
|
268
|
+
/**
|
|
269
|
+
* Pool for reusable byte arrays
|
|
270
|
+
*/
|
|
271
|
+
declare class ByteArrayPool {
|
|
272
|
+
private pools;
|
|
273
|
+
private sizes;
|
|
274
|
+
private maxPerSize;
|
|
275
|
+
/**
|
|
276
|
+
* Get the size class for a given length
|
|
277
|
+
*/
|
|
278
|
+
private getSizeClass;
|
|
279
|
+
/**
|
|
280
|
+
* Acquire a byte array with at least the specified length
|
|
281
|
+
*/
|
|
282
|
+
acquire(minLength: number): Uint8Array;
|
|
283
|
+
/**
|
|
284
|
+
* Release a byte array back to the pool
|
|
285
|
+
*/
|
|
286
|
+
release(arr: Uint8Array): void;
|
|
287
|
+
/**
|
|
288
|
+
* Clear all pools
|
|
289
|
+
*/
|
|
290
|
+
clear(): void;
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Global byte array pool
|
|
294
|
+
*/
|
|
295
|
+
export declare const byteArrayPool: ByteArrayPool;
|
|
296
|
+
/**
|
|
297
|
+
* Convert a Uint8Array to string efficiently
|
|
298
|
+
*
|
|
299
|
+
* Uses TextDecoder for larger buffers (> 1KB) which is more efficient,
|
|
300
|
+
* and falls back to simple string conversion for smaller buffers.
|
|
301
|
+
*/
|
|
302
|
+
export declare function uint8ArrayToString(data: Uint8Array): string;
|
|
303
|
+
/**
|
|
304
|
+
* Convert a Buffer to string efficiently
|
|
305
|
+
*
|
|
306
|
+
* Uses TextDecoder for larger buffers (> 1KB) which is more efficient.
|
|
307
|
+
*/
|
|
308
|
+
export declare function bufferToString(data: globalThis.Buffer, encoding?: BufferEncoding): string;
|
|
309
|
+
/**
|
|
310
|
+
* Reusable number array pool for hot paths
|
|
311
|
+
*/
|
|
312
|
+
declare class NumberArrayPool {
|
|
313
|
+
private pools;
|
|
314
|
+
private maxPerSize;
|
|
315
|
+
acquire(size: number): number[];
|
|
316
|
+
release(arr: number[]): void;
|
|
317
|
+
clear(): void;
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* Global number array pool
|
|
321
|
+
*/
|
|
322
|
+
export declare const numberArrayPool: NumberArrayPool;
|
|
323
|
+
/**
|
|
324
|
+
* Generate a comprehensive leak report
|
|
325
|
+
*/
|
|
326
|
+
export declare function generateLeakReport(minAgeMs?: number): string;
|
|
327
|
+
/**
|
|
328
|
+
* Print leak report to console
|
|
329
|
+
*/
|
|
330
|
+
export declare function printLeakReport(minAgeMs?: number): void;
|
|
331
|
+
export {};
|
|
332
|
+
//# sourceMappingURL=resource-tracking.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-tracking.d.ts","sourceRoot":"","sources":["../src/resource-tracking.ts"],"names":[],"mappings":"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"}
|