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.
- package/lib/builders/annotation-builder.d.ts +199 -0
- package/lib/builders/annotation-builder.d.ts.map +1 -0
- package/lib/builders/annotation-builder.js +318 -0
- package/lib/builders/annotation-builder.js.map +1 -0
- package/lib/builders/conversion-options-builder.d.ts +107 -0
- package/lib/builders/conversion-options-builder.d.ts.map +1 -0
- package/lib/builders/conversion-options-builder.js +215 -0
- package/lib/builders/conversion-options-builder.js.map +1 -0
- package/{src/builders/index.ts → lib/builders/index.d.ts} +1 -1
- package/lib/builders/index.d.ts.map +1 -0
- package/lib/builders/index.js +12 -0
- package/lib/builders/index.js.map +1 -0
- package/lib/builders/metadata-builder.d.ts +202 -0
- package/lib/builders/metadata-builder.d.ts.map +1 -0
- package/lib/builders/metadata-builder.js +286 -0
- package/lib/builders/metadata-builder.js.map +1 -0
- package/lib/builders/pdf-builder.d.ts +215 -0
- package/lib/builders/pdf-builder.d.ts.map +1 -0
- package/lib/builders/pdf-builder.js +339 -0
- package/lib/builders/pdf-builder.js.map +1 -0
- package/lib/builders/search-options-builder.d.ts +74 -0
- package/lib/builders/search-options-builder.d.ts.map +1 -0
- package/lib/builders/search-options-builder.js +130 -0
- package/lib/builders/search-options-builder.js.map +1 -0
- package/lib/document-editor-manager.d.ts +140 -0
- package/lib/document-editor-manager.d.ts.map +1 -0
- package/lib/document-editor-manager.js +257 -0
- package/lib/document-editor-manager.js.map +1 -0
- package/lib/errors.d.ts +383 -0
- package/lib/errors.d.ts.map +1 -0
- package/lib/errors.js +1117 -0
- package/lib/errors.js.map +1 -0
- package/lib/form-field-manager.d.ts +300 -0
- package/lib/form-field-manager.d.ts.map +1 -0
- package/lib/form-field-manager.js +567 -0
- package/lib/form-field-manager.js.map +1 -0
- package/lib/hybrid-ml-manager.d.ts +143 -0
- package/lib/hybrid-ml-manager.d.ts.map +1 -0
- package/lib/hybrid-ml-manager.js +209 -0
- package/lib/hybrid-ml-manager.js.map +1 -0
- package/lib/index.d.ts +23 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +280 -0
- package/lib/index.js.map +1 -0
- package/lib/managers/accessibility-manager.d.ts +149 -0
- package/lib/managers/accessibility-manager.d.ts.map +1 -0
- package/lib/managers/accessibility-manager.js +224 -0
- package/lib/managers/accessibility-manager.js.map +1 -0
- package/lib/managers/annotation-manager.d.ts +220 -0
- package/lib/managers/annotation-manager.d.ts.map +1 -0
- package/lib/managers/annotation-manager.js +360 -0
- package/lib/managers/annotation-manager.js.map +1 -0
- package/lib/managers/barcode-manager.d.ts +80 -0
- package/lib/managers/barcode-manager.d.ts.map +1 -0
- package/lib/managers/barcode-manager.js +226 -0
- package/lib/managers/barcode-manager.js.map +1 -0
- package/lib/managers/batch-manager.d.ts +186 -0
- package/lib/managers/batch-manager.d.ts.map +1 -0
- package/lib/managers/batch-manager.js +389 -0
- package/lib/managers/batch-manager.js.map +1 -0
- package/lib/managers/cache-manager.d.ts +182 -0
- package/lib/managers/cache-manager.d.ts.map +1 -0
- package/lib/managers/cache-manager.js +387 -0
- package/lib/managers/cache-manager.js.map +1 -0
- package/lib/managers/compliance-manager.d.ts +104 -0
- package/lib/managers/compliance-manager.d.ts.map +1 -0
- package/lib/managers/compliance-manager.js +415 -0
- package/lib/managers/compliance-manager.js.map +1 -0
- package/lib/managers/content-manager.d.ts +121 -0
- package/lib/managers/content-manager.d.ts.map +1 -0
- package/lib/managers/content-manager.js +295 -0
- package/lib/managers/content-manager.js.map +1 -0
- package/lib/managers/document-utility-manager.d.ts +370 -0
- package/lib/managers/document-utility-manager.d.ts.map +1 -0
- package/lib/managers/document-utility-manager.js +731 -0
- package/lib/managers/document-utility-manager.js.map +1 -0
- package/lib/managers/dom-pdf-creator.d.ts +105 -0
- package/lib/managers/dom-pdf-creator.d.ts.map +1 -0
- package/lib/managers/dom-pdf-creator.js +300 -0
- package/lib/managers/dom-pdf-creator.js.map +1 -0
- package/lib/managers/editing-manager.d.ts +249 -0
- package/lib/managers/editing-manager.d.ts.map +1 -0
- package/lib/managers/editing-manager.js +388 -0
- package/lib/managers/editing-manager.js.map +1 -0
- package/lib/managers/enterprise-manager.d.ts +193 -0
- package/lib/managers/enterprise-manager.d.ts.map +1 -0
- package/lib/managers/enterprise-manager.js +305 -0
- package/lib/managers/enterprise-manager.js.map +1 -0
- package/lib/managers/extended-managers.d.ts +123 -0
- package/lib/managers/extended-managers.d.ts.map +1 -0
- package/lib/managers/extended-managers.js +658 -0
- package/lib/managers/extended-managers.js.map +1 -0
- package/lib/managers/extraction-manager.d.ts +247 -0
- package/lib/managers/extraction-manager.d.ts.map +1 -0
- package/lib/managers/extraction-manager.js +478 -0
- package/lib/managers/extraction-manager.js.map +1 -0
- package/lib/managers/final-utilities.d.ts +128 -0
- package/lib/managers/final-utilities.d.ts.map +1 -0
- package/lib/managers/final-utilities.js +653 -0
- package/lib/managers/final-utilities.js.map +1 -0
- package/lib/managers/hybrid-ml-advanced.d.ts +137 -0
- package/lib/managers/hybrid-ml-advanced.d.ts.map +1 -0
- package/lib/managers/hybrid-ml-advanced.js +707 -0
- package/lib/managers/hybrid-ml-advanced.js.map +1 -0
- package/lib/managers/index.d.ts +65 -0
- package/lib/managers/index.d.ts.map +1 -0
- package/lib/managers/index.js +70 -0
- package/lib/managers/index.js.map +1 -0
- package/lib/managers/layer-manager.d.ts +204 -0
- package/lib/managers/layer-manager.d.ts.map +1 -0
- package/lib/managers/layer-manager.js +403 -0
- package/lib/managers/layer-manager.js.map +1 -0
- package/lib/managers/metadata-manager.d.ts +149 -0
- package/lib/managers/metadata-manager.d.ts.map +1 -0
- package/lib/managers/metadata-manager.js +281 -0
- package/lib/managers/metadata-manager.js.map +1 -0
- package/lib/managers/ocr-manager.d.ts +195 -0
- package/lib/managers/ocr-manager.d.ts.map +1 -0
- package/lib/managers/ocr-manager.js +583 -0
- package/lib/managers/ocr-manager.js.map +1 -0
- package/lib/managers/optimization-manager.d.ts +103 -0
- package/lib/managers/optimization-manager.d.ts.map +1 -0
- package/lib/managers/optimization-manager.js +194 -0
- package/lib/managers/optimization-manager.js.map +1 -0
- package/lib/managers/outline-manager.d.ts +102 -0
- package/lib/managers/outline-manager.d.ts.map +1 -0
- package/lib/managers/outline-manager.js +170 -0
- package/lib/managers/outline-manager.js.map +1 -0
- package/lib/managers/page-manager.d.ts +143 -0
- package/lib/managers/page-manager.d.ts.map +1 -0
- package/lib/managers/page-manager.js +237 -0
- package/lib/managers/page-manager.js.map +1 -0
- package/lib/managers/pattern-detection.d.ts +170 -0
- package/lib/managers/pattern-detection.d.ts.map +1 -0
- package/lib/managers/pattern-detection.js +325 -0
- package/lib/managers/pattern-detection.js.map +1 -0
- package/lib/managers/rendering-manager.d.ts +354 -0
- package/lib/managers/rendering-manager.d.ts.map +1 -0
- package/lib/managers/rendering-manager.js +680 -0
- package/lib/managers/rendering-manager.js.map +1 -0
- package/lib/managers/search-manager.d.ts +236 -0
- package/lib/managers/search-manager.d.ts.map +1 -0
- package/lib/managers/search-manager.js +330 -0
- package/lib/managers/search-manager.js.map +1 -0
- package/lib/managers/security-manager.d.ts +162 -0
- package/lib/managers/security-manager.d.ts.map +1 -0
- package/lib/managers/security-manager.js +293 -0
- package/lib/managers/security-manager.js.map +1 -0
- package/lib/managers/signature-manager.d.ts +725 -0
- package/lib/managers/signature-manager.d.ts.map +1 -0
- package/lib/managers/signature-manager.js +1365 -0
- package/lib/managers/signature-manager.js.map +1 -0
- package/lib/managers/streams.d.ts +263 -0
- package/lib/managers/streams.d.ts.map +1 -0
- package/lib/managers/streams.js +472 -0
- package/lib/managers/streams.js.map +1 -0
- package/lib/managers/xfa-manager.d.ts +228 -0
- package/lib/managers/xfa-manager.d.ts.map +1 -0
- package/lib/managers/xfa-manager.js +490 -0
- package/lib/managers/xfa-manager.js.map +1 -0
- package/lib/pdf-creator-manager.d.ts +201 -0
- package/lib/pdf-creator-manager.d.ts.map +1 -0
- package/lib/pdf-creator-manager.js +379 -0
- package/lib/pdf-creator-manager.js.map +1 -0
- package/lib/properties.d.ts +80 -0
- package/lib/properties.d.ts.map +1 -0
- package/lib/properties.js +455 -0
- package/lib/properties.js.map +1 -0
- package/lib/result-accessors-manager.d.ts +347 -0
- package/lib/result-accessors-manager.d.ts.map +1 -0
- package/lib/result-accessors-manager.js +705 -0
- package/lib/result-accessors-manager.js.map +1 -0
- package/lib/thumbnail-manager.d.ts +122 -0
- package/lib/thumbnail-manager.d.ts.map +1 -0
- package/lib/thumbnail-manager.js +206 -0
- package/lib/thumbnail-manager.js.map +1 -0
- package/lib/types/common.d.ts +93 -0
- package/lib/types/common.d.ts.map +1 -0
- package/lib/types/common.js +5 -0
- package/lib/types/common.js.map +1 -0
- package/lib/types/document-types.d.ts +353 -0
- package/lib/types/document-types.d.ts.map +1 -0
- package/lib/types/document-types.js +83 -0
- package/lib/types/document-types.js.map +1 -0
- package/{src/types/index.ts → lib/types/index.d.ts} +1 -1
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/index.js +6 -0
- package/lib/types/index.js.map +1 -0
- package/lib/types/manager-types.d.ts +180 -0
- package/lib/types/manager-types.d.ts.map +1 -0
- package/lib/types/manager-types.js +99 -0
- package/lib/types/manager-types.js.map +1 -0
- package/lib/types/native-bindings.d.ts +440 -0
- package/lib/types/native-bindings.d.ts.map +1 -0
- package/lib/types/native-bindings.js +8 -0
- package/lib/types/native-bindings.js.map +1 -0
- package/{src/workers/index.ts → lib/workers/index.d.ts} +1 -1
- package/lib/workers/index.d.ts.map +1 -0
- package/lib/workers/index.js +6 -0
- package/lib/workers/index.js.map +1 -0
- package/lib/workers/pool.d.ts +65 -0
- package/lib/workers/pool.d.ts.map +1 -0
- package/lib/workers/pool.js +195 -0
- package/lib/workers/pool.js.map +1 -0
- package/lib/workers/worker.d.ts +6 -0
- package/lib/workers/worker.d.ts.map +1 -0
- package/lib/workers/worker.js +100 -0
- package/lib/workers/worker.js.map +1 -0
- package/package.json +12 -22
- package/prebuilds/darwin-arm64/pdf_oxide.node +0 -0
- package/prebuilds/darwin-x64/pdf_oxide.node +0 -0
- package/prebuilds/linux-arm64/pdf_oxide.node +0 -0
- package/prebuilds/linux-x64/pdf_oxide.node +0 -0
- package/prebuilds/win32-x64/pdf_oxide.node +0 -0
- package/binding.gyp +0 -35
- package/src/builders/annotation-builder.ts +0 -367
- package/src/builders/conversion-options-builder.ts +0 -257
- package/src/builders/metadata-builder.ts +0 -317
- package/src/builders/pdf-builder.ts +0 -386
- package/src/builders/search-options-builder.ts +0 -151
- package/src/document-editor-manager.ts +0 -318
- package/src/errors.ts +0 -1629
- package/src/form-field-manager.ts +0 -666
- package/src/hybrid-ml-manager.ts +0 -283
- package/src/index.ts +0 -453
- package/src/managers/accessibility-manager.ts +0 -338
- package/src/managers/annotation-manager.ts +0 -439
- package/src/managers/barcode-manager.ts +0 -235
- package/src/managers/batch-manager.ts +0 -533
- package/src/managers/cache-manager.ts +0 -486
- package/src/managers/compliance-manager.ts +0 -375
- package/src/managers/content-manager.ts +0 -339
- package/src/managers/document-utility-manager.ts +0 -922
- package/src/managers/dom-pdf-creator.ts +0 -365
- package/src/managers/editing-manager.ts +0 -514
- package/src/managers/enterprise-manager.ts +0 -478
- package/src/managers/extended-managers.ts +0 -437
- package/src/managers/extraction-manager.ts +0 -583
- package/src/managers/final-utilities.ts +0 -429
- package/src/managers/hybrid-ml-advanced.ts +0 -479
- package/src/managers/index.ts +0 -239
- package/src/managers/layer-manager.ts +0 -500
- package/src/managers/metadata-manager.ts +0 -303
- package/src/managers/ocr-manager.ts +0 -756
- package/src/managers/optimization-manager.ts +0 -262
- package/src/managers/outline-manager.ts +0 -196
- package/src/managers/page-manager.ts +0 -289
- package/src/managers/pattern-detection.ts +0 -440
- package/src/managers/rendering-manager.ts +0 -863
- package/src/managers/search-manager.ts +0 -385
- package/src/managers/security-manager.ts +0 -345
- package/src/managers/signature-manager.ts +0 -1664
- package/src/managers/streams.ts +0 -618
- package/src/managers/xfa-manager.ts +0 -500
- package/src/pdf-creator-manager.ts +0 -494
- package/src/properties.ts +0 -522
- package/src/result-accessors-manager.ts +0 -867
- package/src/tests/advanced-features.test.ts +0 -414
- package/src/tests/advanced.test.ts +0 -266
- package/src/tests/extended-managers.test.ts +0 -316
- package/src/tests/final-utilities.test.ts +0 -455
- package/src/tests/foundation.test.ts +0 -315
- package/src/tests/high-demand.test.ts +0 -257
- package/src/tests/specialized.test.ts +0 -97
- package/src/thumbnail-manager.ts +0 -272
- package/src/types/common.ts +0 -142
- package/src/types/document-types.ts +0 -457
- package/src/types/manager-types.ts +0 -284
- package/src/types/native-bindings.ts +0 -517
- package/src/workers/pool.ts +0 -274
- package/src/workers/worker.ts +0 -131
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Builder for creating PDF annotations
|
|
3
|
+
*
|
|
4
|
+
* Configures annotation properties like content, appearance, author, and behavior.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* import { AnnotationBuilder } from 'pdf_oxide';
|
|
9
|
+
*
|
|
10
|
+
* const annotation = AnnotationBuilder.create()
|
|
11
|
+
* .type('highlight')
|
|
12
|
+
* .content('Important section')
|
|
13
|
+
* .author('Reviewer')
|
|
14
|
+
* .color([1, 1, 0]) // Yellow
|
|
15
|
+
* .build();
|
|
16
|
+
*
|
|
17
|
+
* pdf.addAnnotation(annotation);
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
interface AnnotationBounds {
|
|
21
|
+
x: number;
|
|
22
|
+
y: number;
|
|
23
|
+
width: number;
|
|
24
|
+
height: number;
|
|
25
|
+
}
|
|
26
|
+
export interface Annotation {
|
|
27
|
+
type: string;
|
|
28
|
+
content: string;
|
|
29
|
+
author?: string;
|
|
30
|
+
subject?: string;
|
|
31
|
+
color: number[];
|
|
32
|
+
opacity: number;
|
|
33
|
+
bounds?: AnnotationBounds;
|
|
34
|
+
creationDate: Date;
|
|
35
|
+
modificationDate: Date;
|
|
36
|
+
flags: number;
|
|
37
|
+
reply?: string;
|
|
38
|
+
}
|
|
39
|
+
export declare class AnnotationBuilder {
|
|
40
|
+
private _type;
|
|
41
|
+
private _content;
|
|
42
|
+
private _author?;
|
|
43
|
+
private _subject?;
|
|
44
|
+
private _color;
|
|
45
|
+
private _opacity;
|
|
46
|
+
private _bounds?;
|
|
47
|
+
private _creationDate;
|
|
48
|
+
private _modificationDate;
|
|
49
|
+
private _flags;
|
|
50
|
+
private _reply?;
|
|
51
|
+
/**
|
|
52
|
+
* Creates a new AnnotationBuilder instance
|
|
53
|
+
* @private
|
|
54
|
+
*/
|
|
55
|
+
private constructor();
|
|
56
|
+
/**
|
|
57
|
+
* Creates a new AnnotationBuilder instance
|
|
58
|
+
* @returns New builder instance
|
|
59
|
+
*/
|
|
60
|
+
static create(): AnnotationBuilder;
|
|
61
|
+
/**
|
|
62
|
+
* Creates a text annotation (comment/note)
|
|
63
|
+
* @returns This builder for chaining
|
|
64
|
+
*/
|
|
65
|
+
asText(): this;
|
|
66
|
+
/**
|
|
67
|
+
* Creates a highlight annotation
|
|
68
|
+
* @returns This builder for chaining
|
|
69
|
+
*/
|
|
70
|
+
asHighlight(): this;
|
|
71
|
+
/**
|
|
72
|
+
* Creates an underline annotation
|
|
73
|
+
* @returns This builder for chaining
|
|
74
|
+
*/
|
|
75
|
+
asUnderline(): this;
|
|
76
|
+
/**
|
|
77
|
+
* Creates a strikeout annotation
|
|
78
|
+
* @returns This builder for chaining
|
|
79
|
+
*/
|
|
80
|
+
asStrikeout(): this;
|
|
81
|
+
/**
|
|
82
|
+
* Creates a squiggly (wavy underline) annotation
|
|
83
|
+
* @returns This builder for chaining
|
|
84
|
+
*/
|
|
85
|
+
asSquiggly(): this;
|
|
86
|
+
/**
|
|
87
|
+
* Sets the annotation type
|
|
88
|
+
* @param type - Annotation type ('text', 'highlight', 'underline', 'strikeout', 'squiggly')
|
|
89
|
+
* @returns This builder for chaining
|
|
90
|
+
*/
|
|
91
|
+
type(type: string): this;
|
|
92
|
+
/**
|
|
93
|
+
* Sets the annotation content/text
|
|
94
|
+
* @param content - The annotation content
|
|
95
|
+
* @returns This builder for chaining
|
|
96
|
+
*/
|
|
97
|
+
content(content: string): this;
|
|
98
|
+
/**
|
|
99
|
+
* Sets the author of the annotation
|
|
100
|
+
* @param author - The author name
|
|
101
|
+
* @returns This builder for chaining
|
|
102
|
+
*/
|
|
103
|
+
author(author: string): this;
|
|
104
|
+
/**
|
|
105
|
+
* Sets the subject/title of the annotation
|
|
106
|
+
* @param subject - The annotation subject
|
|
107
|
+
* @returns This builder for chaining
|
|
108
|
+
*/
|
|
109
|
+
subject(subject: string): this;
|
|
110
|
+
/**
|
|
111
|
+
* Sets the color of the annotation (RGB, normalized 0-1)
|
|
112
|
+
* @param rgb - RGB color array [r, g, b] with values 0-1
|
|
113
|
+
* @returns This builder for chaining
|
|
114
|
+
*
|
|
115
|
+
* @example
|
|
116
|
+
* ```typescript
|
|
117
|
+
* builder.color([1, 1, 0]); // Yellow
|
|
118
|
+
* builder.color([1, 0, 0]); // Red
|
|
119
|
+
* builder.color([0, 1, 0]); // Green
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
122
|
+
color(rgb: number[]): this;
|
|
123
|
+
/**
|
|
124
|
+
* Sets the color using common color names
|
|
125
|
+
* @param colorName - Color name (e.g., 'red', 'yellow', 'green', 'blue')
|
|
126
|
+
* @returns This builder for chaining
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* ```typescript
|
|
130
|
+
* builder.colorName('yellow');
|
|
131
|
+
* builder.colorName('red');
|
|
132
|
+
* ```
|
|
133
|
+
*/
|
|
134
|
+
colorName(colorName: string): this;
|
|
135
|
+
/**
|
|
136
|
+
* Sets the opacity/transparency (0-1)
|
|
137
|
+
* @param opacity - Opacity value (0=transparent, 1=opaque)
|
|
138
|
+
* @returns This builder for chaining
|
|
139
|
+
*/
|
|
140
|
+
opacity(opacity: number): this;
|
|
141
|
+
/**
|
|
142
|
+
* Sets the bounding box for the annotation
|
|
143
|
+
* @param bounds - Bounding box {x, y, width, height}
|
|
144
|
+
* @returns This builder for chaining
|
|
145
|
+
*
|
|
146
|
+
* @example
|
|
147
|
+
* ```typescript
|
|
148
|
+
* builder.bounds({x: 100, y: 200, width: 150, height: 30});
|
|
149
|
+
* ```
|
|
150
|
+
*/
|
|
151
|
+
bounds(bounds: AnnotationBounds): this;
|
|
152
|
+
/**
|
|
153
|
+
* Sets the creation date
|
|
154
|
+
* @param date - The creation date
|
|
155
|
+
* @returns This builder for chaining
|
|
156
|
+
*/
|
|
157
|
+
creationDate(date: Date): this;
|
|
158
|
+
/**
|
|
159
|
+
* Sets the modification date
|
|
160
|
+
* @param date - The modification date
|
|
161
|
+
* @returns This builder for chaining
|
|
162
|
+
*/
|
|
163
|
+
modificationDate(date: Date): this;
|
|
164
|
+
/**
|
|
165
|
+
* Sets the annotation to be printed
|
|
166
|
+
* @returns This builder for chaining
|
|
167
|
+
*/
|
|
168
|
+
printable(): this;
|
|
169
|
+
/**
|
|
170
|
+
* Sets the annotation to NOT be printed
|
|
171
|
+
* @returns This builder for chaining
|
|
172
|
+
*/
|
|
173
|
+
notPrintable(): this;
|
|
174
|
+
/**
|
|
175
|
+
* Sets whether the annotation is locked (read-only)
|
|
176
|
+
* @param locked - Whether to lock the annotation
|
|
177
|
+
* @returns This builder for chaining
|
|
178
|
+
*/
|
|
179
|
+
locked(locked: boolean): this;
|
|
180
|
+
/**
|
|
181
|
+
* Sets a reply to this annotation
|
|
182
|
+
* @param replyContent - Content of the reply
|
|
183
|
+
* @returns This builder for chaining
|
|
184
|
+
*/
|
|
185
|
+
reply(replyContent: string): this;
|
|
186
|
+
/**
|
|
187
|
+
* Builds and returns the annotation object
|
|
188
|
+
* @returns Immutable annotation object
|
|
189
|
+
*/
|
|
190
|
+
build(): Annotation;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Create a new AnnotationBuilder with static factory
|
|
194
|
+
* @deprecated Use AnnotationBuilder.create() instead
|
|
195
|
+
* @returns New builder instance
|
|
196
|
+
*/
|
|
197
|
+
export declare function createAnnotationBuilder(): AnnotationBuilder;
|
|
198
|
+
export {};
|
|
199
|
+
//# sourceMappingURL=annotation-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"annotation-builder.d.ts","sourceRoot":"","sources":["../../src/builders/annotation-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,UAAU,gBAAgB;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,YAAY,EAAE,IAAI,CAAC;IACnB,gBAAgB,EAAE,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,OAAO,CAAC,CAAmB;IACnC,OAAO,CAAC,aAAa,CAAoB;IACzC,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,MAAM,CAAC,CAAS;IAExB;;;OAGG;IACH,OAAO;IAEP;;;OAGG;IACH,MAAM,CAAC,MAAM,IAAI,iBAAiB;IAIlC;;;OAGG;IACH,MAAM,IAAI,IAAI;IAKd;;;OAGG;IACH,WAAW,IAAI,IAAI;IAKnB;;;OAGG;IACH,WAAW,IAAI,IAAI;IAKnB;;;OAGG;IACH,WAAW,IAAI,IAAI;IAKnB;;;OAGG;IACH,UAAU,IAAI,IAAI;IAKlB;;;;OAIG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IASxB;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQ9B;;;;OAIG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQ5B;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQ9B;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI;IAW1B;;;;;;;;;;OAUG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAyBlC;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQ9B;;;;;;;;;OASG;IACH,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAYtC;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAQ9B;;;;OAIG;IACH,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAQlC;;;OAGG;IACH,SAAS,IAAI,IAAI;IAKjB;;;OAGG;IACH,YAAY,IAAI,IAAI;IAKpB;;;;OAIG;IACH,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAY7B;;;;OAIG;IACH,KAAK,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAQjC;;;OAGG;IACH,KAAK,IAAI,UAAU;CAmBpB;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,iBAAiB,CAE3D"}
|
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Builder for creating PDF annotations
|
|
3
|
+
*
|
|
4
|
+
* Configures annotation properties like content, appearance, author, and behavior.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* import { AnnotationBuilder } from 'pdf_oxide';
|
|
9
|
+
*
|
|
10
|
+
* const annotation = AnnotationBuilder.create()
|
|
11
|
+
* .type('highlight')
|
|
12
|
+
* .content('Important section')
|
|
13
|
+
* .author('Reviewer')
|
|
14
|
+
* .color([1, 1, 0]) // Yellow
|
|
15
|
+
* .build();
|
|
16
|
+
*
|
|
17
|
+
* pdf.addAnnotation(annotation);
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export class AnnotationBuilder {
|
|
21
|
+
/**
|
|
22
|
+
* Creates a new AnnotationBuilder instance
|
|
23
|
+
* @private
|
|
24
|
+
*/
|
|
25
|
+
constructor() {
|
|
26
|
+
this._type = 'text';
|
|
27
|
+
this._content = '';
|
|
28
|
+
this._color = [1, 0, 0]; // Default: red (RGB normalized 0-1)
|
|
29
|
+
this._opacity = 1.0;
|
|
30
|
+
this._creationDate = new Date();
|
|
31
|
+
this._modificationDate = new Date();
|
|
32
|
+
this._flags = 0;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Creates a new AnnotationBuilder instance
|
|
36
|
+
* @returns New builder instance
|
|
37
|
+
*/
|
|
38
|
+
static create() {
|
|
39
|
+
return new AnnotationBuilder();
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Creates a text annotation (comment/note)
|
|
43
|
+
* @returns This builder for chaining
|
|
44
|
+
*/
|
|
45
|
+
asText() {
|
|
46
|
+
this._type = 'text';
|
|
47
|
+
return this;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Creates a highlight annotation
|
|
51
|
+
* @returns This builder for chaining
|
|
52
|
+
*/
|
|
53
|
+
asHighlight() {
|
|
54
|
+
this._type = 'highlight';
|
|
55
|
+
return this;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Creates an underline annotation
|
|
59
|
+
* @returns This builder for chaining
|
|
60
|
+
*/
|
|
61
|
+
asUnderline() {
|
|
62
|
+
this._type = 'underline';
|
|
63
|
+
return this;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Creates a strikeout annotation
|
|
67
|
+
* @returns This builder for chaining
|
|
68
|
+
*/
|
|
69
|
+
asStrikeout() {
|
|
70
|
+
this._type = 'strikeout';
|
|
71
|
+
return this;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Creates a squiggly (wavy underline) annotation
|
|
75
|
+
* @returns This builder for chaining
|
|
76
|
+
*/
|
|
77
|
+
asSquiggly() {
|
|
78
|
+
this._type = 'squiggly';
|
|
79
|
+
return this;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Sets the annotation type
|
|
83
|
+
* @param type - Annotation type ('text', 'highlight', 'underline', 'strikeout', 'squiggly')
|
|
84
|
+
* @returns This builder for chaining
|
|
85
|
+
*/
|
|
86
|
+
type(type) {
|
|
87
|
+
const validTypes = ['text', 'highlight', 'underline', 'strikeout', 'squiggly', 'note'];
|
|
88
|
+
if (!validTypes.includes(type)) {
|
|
89
|
+
throw new Error(`Invalid annotation type. Must be one of: ${validTypes.join(', ')}`);
|
|
90
|
+
}
|
|
91
|
+
this._type = type;
|
|
92
|
+
return this;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Sets the annotation content/text
|
|
96
|
+
* @param content - The annotation content
|
|
97
|
+
* @returns This builder for chaining
|
|
98
|
+
*/
|
|
99
|
+
content(content) {
|
|
100
|
+
if (typeof content !== 'string') {
|
|
101
|
+
throw new Error('Content must be a string');
|
|
102
|
+
}
|
|
103
|
+
this._content = content;
|
|
104
|
+
return this;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Sets the author of the annotation
|
|
108
|
+
* @param author - The author name
|
|
109
|
+
* @returns This builder for chaining
|
|
110
|
+
*/
|
|
111
|
+
author(author) {
|
|
112
|
+
if (typeof author !== 'string') {
|
|
113
|
+
throw new Error('Author must be a string');
|
|
114
|
+
}
|
|
115
|
+
this._author = author.length > 0 ? author : undefined;
|
|
116
|
+
return this;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Sets the subject/title of the annotation
|
|
120
|
+
* @param subject - The annotation subject
|
|
121
|
+
* @returns This builder for chaining
|
|
122
|
+
*/
|
|
123
|
+
subject(subject) {
|
|
124
|
+
if (typeof subject !== 'string') {
|
|
125
|
+
throw new Error('Subject must be a string');
|
|
126
|
+
}
|
|
127
|
+
this._subject = subject.length > 0 ? subject : undefined;
|
|
128
|
+
return this;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Sets the color of the annotation (RGB, normalized 0-1)
|
|
132
|
+
* @param rgb - RGB color array [r, g, b] with values 0-1
|
|
133
|
+
* @returns This builder for chaining
|
|
134
|
+
*
|
|
135
|
+
* @example
|
|
136
|
+
* ```typescript
|
|
137
|
+
* builder.color([1, 1, 0]); // Yellow
|
|
138
|
+
* builder.color([1, 0, 0]); // Red
|
|
139
|
+
* builder.color([0, 1, 0]); // Green
|
|
140
|
+
* ```
|
|
141
|
+
*/
|
|
142
|
+
color(rgb) {
|
|
143
|
+
if (!Array.isArray(rgb) || rgb.length !== 3) {
|
|
144
|
+
throw new Error('Color must be an array of 3 RGB values [r, g, b]');
|
|
145
|
+
}
|
|
146
|
+
if (!rgb.every((c) => typeof c === 'number' && c >= 0 && c <= 1)) {
|
|
147
|
+
throw new Error('RGB values must be numbers between 0 and 1');
|
|
148
|
+
}
|
|
149
|
+
this._color = [...rgb];
|
|
150
|
+
return this;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Sets the color using common color names
|
|
154
|
+
* @param colorName - Color name (e.g., 'red', 'yellow', 'green', 'blue')
|
|
155
|
+
* @returns This builder for chaining
|
|
156
|
+
*
|
|
157
|
+
* @example
|
|
158
|
+
* ```typescript
|
|
159
|
+
* builder.colorName('yellow');
|
|
160
|
+
* builder.colorName('red');
|
|
161
|
+
* ```
|
|
162
|
+
*/
|
|
163
|
+
colorName(colorName) {
|
|
164
|
+
const colors = {
|
|
165
|
+
red: [1, 0, 0],
|
|
166
|
+
green: [0, 1, 0],
|
|
167
|
+
blue: [0, 0, 1],
|
|
168
|
+
yellow: [1, 1, 0],
|
|
169
|
+
cyan: [0, 1, 1],
|
|
170
|
+
magenta: [1, 0, 1],
|
|
171
|
+
white: [1, 1, 1],
|
|
172
|
+
black: [0, 0, 0],
|
|
173
|
+
gray: [0.5, 0.5, 0.5],
|
|
174
|
+
orange: [1, 0.5, 0],
|
|
175
|
+
purple: [0.5, 0, 0.5],
|
|
176
|
+
};
|
|
177
|
+
const lowerColorName = colorName.toLowerCase();
|
|
178
|
+
if (!colors[lowerColorName]) {
|
|
179
|
+
const available = Object.keys(colors).join(', ');
|
|
180
|
+
throw new Error(`Unknown color. Available colors: ${available}`);
|
|
181
|
+
}
|
|
182
|
+
this._color = [...colors[lowerColorName]];
|
|
183
|
+
return this;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Sets the opacity/transparency (0-1)
|
|
187
|
+
* @param opacity - Opacity value (0=transparent, 1=opaque)
|
|
188
|
+
* @returns This builder for chaining
|
|
189
|
+
*/
|
|
190
|
+
opacity(opacity) {
|
|
191
|
+
if (typeof opacity !== 'number' || opacity < 0 || opacity > 1) {
|
|
192
|
+
throw new Error('Opacity must be a number between 0 and 1');
|
|
193
|
+
}
|
|
194
|
+
this._opacity = opacity;
|
|
195
|
+
return this;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Sets the bounding box for the annotation
|
|
199
|
+
* @param bounds - Bounding box {x, y, width, height}
|
|
200
|
+
* @returns This builder for chaining
|
|
201
|
+
*
|
|
202
|
+
* @example
|
|
203
|
+
* ```typescript
|
|
204
|
+
* builder.bounds({x: 100, y: 200, width: 150, height: 30});
|
|
205
|
+
* ```
|
|
206
|
+
*/
|
|
207
|
+
bounds(bounds) {
|
|
208
|
+
if (typeof bounds !== 'object' || bounds === null) {
|
|
209
|
+
throw new Error('Bounds must be an object');
|
|
210
|
+
}
|
|
211
|
+
const { x, y, width, height } = bounds;
|
|
212
|
+
if (![x, y, width, height].every((v) => typeof v === 'number' && v >= 0)) {
|
|
213
|
+
throw new Error('Bounds must have numeric x, y, width, height values >= 0');
|
|
214
|
+
}
|
|
215
|
+
this._bounds = { x, y, width, height };
|
|
216
|
+
return this;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Sets the creation date
|
|
220
|
+
* @param date - The creation date
|
|
221
|
+
* @returns This builder for chaining
|
|
222
|
+
*/
|
|
223
|
+
creationDate(date) {
|
|
224
|
+
if (!(date instanceof Date)) {
|
|
225
|
+
throw new Error('creationDate must be a Date object');
|
|
226
|
+
}
|
|
227
|
+
this._creationDate = new Date(date);
|
|
228
|
+
return this;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Sets the modification date
|
|
232
|
+
* @param date - The modification date
|
|
233
|
+
* @returns This builder for chaining
|
|
234
|
+
*/
|
|
235
|
+
modificationDate(date) {
|
|
236
|
+
if (!(date instanceof Date)) {
|
|
237
|
+
throw new Error('modificationDate must be a Date object');
|
|
238
|
+
}
|
|
239
|
+
this._modificationDate = new Date(date);
|
|
240
|
+
return this;
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Sets the annotation to be printed
|
|
244
|
+
* @returns This builder for chaining
|
|
245
|
+
*/
|
|
246
|
+
printable() {
|
|
247
|
+
this._flags |= 4; // Print flag
|
|
248
|
+
return this;
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Sets the annotation to NOT be printed
|
|
252
|
+
* @returns This builder for chaining
|
|
253
|
+
*/
|
|
254
|
+
notPrintable() {
|
|
255
|
+
this._flags &= ~4; // Clear print flag
|
|
256
|
+
return this;
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Sets whether the annotation is locked (read-only)
|
|
260
|
+
* @param locked - Whether to lock the annotation
|
|
261
|
+
* @returns This builder for chaining
|
|
262
|
+
*/
|
|
263
|
+
locked(locked) {
|
|
264
|
+
if (typeof locked !== 'boolean') {
|
|
265
|
+
throw new Error('locked must be a boolean');
|
|
266
|
+
}
|
|
267
|
+
if (locked) {
|
|
268
|
+
this._flags |= 128; // Locked flag
|
|
269
|
+
}
|
|
270
|
+
else {
|
|
271
|
+
this._flags &= ~128;
|
|
272
|
+
}
|
|
273
|
+
return this;
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Sets a reply to this annotation
|
|
277
|
+
* @param replyContent - Content of the reply
|
|
278
|
+
* @returns This builder for chaining
|
|
279
|
+
*/
|
|
280
|
+
reply(replyContent) {
|
|
281
|
+
if (typeof replyContent !== 'string') {
|
|
282
|
+
throw new Error('Reply content must be a string');
|
|
283
|
+
}
|
|
284
|
+
this._reply = replyContent;
|
|
285
|
+
return this;
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Builds and returns the annotation object
|
|
289
|
+
* @returns Immutable annotation object
|
|
290
|
+
*/
|
|
291
|
+
build() {
|
|
292
|
+
if (!this._bounds && this._type !== 'text') {
|
|
293
|
+
throw new Error(`Annotation type "${this._type}" requires bounds to be set`);
|
|
294
|
+
}
|
|
295
|
+
return {
|
|
296
|
+
type: this._type,
|
|
297
|
+
content: this._content,
|
|
298
|
+
author: this._author,
|
|
299
|
+
subject: this._subject,
|
|
300
|
+
color: [...this._color],
|
|
301
|
+
opacity: this._opacity,
|
|
302
|
+
bounds: this._bounds ? { ...this._bounds } : undefined,
|
|
303
|
+
creationDate: new Date(this._creationDate),
|
|
304
|
+
modificationDate: new Date(this._modificationDate),
|
|
305
|
+
flags: this._flags,
|
|
306
|
+
reply: this._reply,
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Create a new AnnotationBuilder with static factory
|
|
312
|
+
* @deprecated Use AnnotationBuilder.create() instead
|
|
313
|
+
* @returns New builder instance
|
|
314
|
+
*/
|
|
315
|
+
export function createAnnotationBuilder() {
|
|
316
|
+
return AnnotationBuilder.create();
|
|
317
|
+
}
|
|
318
|
+
//# sourceMappingURL=annotation-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"annotation-builder.js","sourceRoot":"","sources":["../../src/builders/annotation-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Builder for conversion options when converting PDF to other formats
|
|
3
|
+
*
|
|
4
|
+
* Configures how PDFs are converted to Markdown, HTML, or other text formats
|
|
5
|
+
* with options for formatting, image handling, and content extraction.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { ConversionOptionsBuilder } from 'pdf_oxide';
|
|
10
|
+
*
|
|
11
|
+
* const options = ConversionOptionsBuilder.create()
|
|
12
|
+
* .preserveFormatting(true)
|
|
13
|
+
* .includeImages(true)
|
|
14
|
+
* .detectHeadings(true)
|
|
15
|
+
* .detectTables(true)
|
|
16
|
+
* .build();
|
|
17
|
+
*
|
|
18
|
+
* const doc = PdfDocument.open('file.pdf');
|
|
19
|
+
* const markdown = doc.toMarkdown(0, options);
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
interface PageRangeOptions {
|
|
23
|
+
start: number;
|
|
24
|
+
end: number;
|
|
25
|
+
}
|
|
26
|
+
export interface ConversionOptions {
|
|
27
|
+
preserveFormatting: boolean;
|
|
28
|
+
detectHeadings: boolean;
|
|
29
|
+
detectTables: boolean;
|
|
30
|
+
detectLists: boolean;
|
|
31
|
+
includeImages: boolean;
|
|
32
|
+
imageFormat: string;
|
|
33
|
+
imageQuality: number;
|
|
34
|
+
maxImageDimension: number;
|
|
35
|
+
outputEncoding: string;
|
|
36
|
+
normalizeWhitespace: boolean;
|
|
37
|
+
extractAnnotations: boolean;
|
|
38
|
+
useStructureTree: boolean;
|
|
39
|
+
pageRange?: PageRangeOptions;
|
|
40
|
+
}
|
|
41
|
+
export declare class ConversionOptionsBuilder {
|
|
42
|
+
private _preserveFormatting;
|
|
43
|
+
private _detectHeadings;
|
|
44
|
+
private _detectTables;
|
|
45
|
+
private _detectLists;
|
|
46
|
+
private _includeImages;
|
|
47
|
+
private _imageFormat;
|
|
48
|
+
private _imageQuality;
|
|
49
|
+
private _maxImageDimension;
|
|
50
|
+
private _outputEncoding;
|
|
51
|
+
private _normalizeWhitespace;
|
|
52
|
+
private _extractAnnotations;
|
|
53
|
+
private _useStructureTree;
|
|
54
|
+
private _pageRange?;
|
|
55
|
+
/**
|
|
56
|
+
* Creates a new ConversionOptionsBuilder instance
|
|
57
|
+
* @private
|
|
58
|
+
*/
|
|
59
|
+
private constructor();
|
|
60
|
+
/**
|
|
61
|
+
* Creates a new ConversionOptionsBuilder instance
|
|
62
|
+
* @returns New builder instance
|
|
63
|
+
*/
|
|
64
|
+
static create(): ConversionOptionsBuilder;
|
|
65
|
+
/**
|
|
66
|
+
* Creates options with default settings optimized for readability
|
|
67
|
+
* @returns Conversion options with default preset
|
|
68
|
+
*/
|
|
69
|
+
static default(): ConversionOptions;
|
|
70
|
+
/**
|
|
71
|
+
* Creates options optimized for text-only extraction
|
|
72
|
+
* @returns Conversion options with text-only preset
|
|
73
|
+
*/
|
|
74
|
+
static textOnly(): ConversionOptions;
|
|
75
|
+
/**
|
|
76
|
+
* Creates options optimized for maximum quality and detail preservation
|
|
77
|
+
* @returns Conversion options with high-quality preset
|
|
78
|
+
*/
|
|
79
|
+
static highQuality(): ConversionOptions;
|
|
80
|
+
/**
|
|
81
|
+
* Creates options for fast, basic conversion
|
|
82
|
+
* @returns Conversion options with fast preset
|
|
83
|
+
*/
|
|
84
|
+
static fast(): ConversionOptions;
|
|
85
|
+
preserveFormatting(preserve: boolean): this;
|
|
86
|
+
detectHeadings(detect: boolean): this;
|
|
87
|
+
detectTables(detect: boolean): this;
|
|
88
|
+
detectLists(detect: boolean): this;
|
|
89
|
+
includeImages(include: boolean): this;
|
|
90
|
+
imageFormat(format: string): this;
|
|
91
|
+
imageQuality(quality: number): this;
|
|
92
|
+
maxImageDimension(maxDimension: number): this;
|
|
93
|
+
outputEncoding(encoding: string): this;
|
|
94
|
+
normalizeWhitespace(normalize: boolean): this;
|
|
95
|
+
extractAnnotations(extract: boolean): this;
|
|
96
|
+
useStructureTree(use: boolean): this;
|
|
97
|
+
pageRange(start: number, end: number): this;
|
|
98
|
+
build(): ConversionOptions;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Create a new ConversionOptionsBuilder with static factory
|
|
102
|
+
* @deprecated Use ConversionOptionsBuilder.create() instead
|
|
103
|
+
* @returns New builder instance
|
|
104
|
+
*/
|
|
105
|
+
export declare function createConversionOptionsBuilder(): ConversionOptionsBuilder;
|
|
106
|
+
export {};
|
|
107
|
+
//# sourceMappingURL=conversion-options-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversion-options-builder.d.ts","sourceRoot":"","sources":["../../src/builders/conversion-options-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,UAAU,gBAAgB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,iBAAiB;IAChC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B;AAED,qBAAa,wBAAwB;IACnC,OAAO,CAAC,mBAAmB,CAAiB;IAC5C,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,kBAAkB,CAAgB;IAC1C,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,oBAAoB,CAAiB;IAC7C,OAAO,CAAC,mBAAmB,CAAkB;IAC7C,OAAO,CAAC,iBAAiB,CAAiB;IAC1C,OAAO,CAAC,UAAU,CAAC,CAAmB;IAEtC;;;OAGG;IACH,OAAO;IAEP;;;OAGG;IACH,MAAM,CAAC,MAAM,IAAI,wBAAwB;IAIzC;;;OAGG;IACH,MAAM,CAAC,OAAO,IAAI,iBAAiB;IAInC;;;OAGG;IACH,MAAM,CAAC,QAAQ,IAAI,iBAAiB;IAUpC;;;OAGG;IACH,MAAM,CAAC,WAAW,IAAI,iBAAiB;IAYvC;;;OAGG;IACH,MAAM,CAAC,IAAI,IAAI,iBAAiB;IAWhC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAQ3C,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAQrC,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAQnC,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAQlC,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQrC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IASjC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQnC,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAQ7C,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQtC,mBAAmB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI;IAQ7C,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQ1C,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAQpC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAQ3C,KAAK,IAAI,iBAAiB;CAiB3B;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,IAAI,wBAAwB,CAEzE"}
|