pdf-oxide-wasm 0.3.39 → 0.3.41

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/web/pdf_oxide.js CHANGED
@@ -117,6 +117,14 @@ export class StreamingTable {
117
117
  const ptr = this.__destroy_into_raw();
118
118
  wasm.__wbg_streamingtable_free(ptr, 0);
119
119
  }
120
+ /**
121
+ * Number of fully-completed batches waiting for finish().
122
+ * @returns {number}
123
+ */
124
+ batchCount() {
125
+ const ret = wasm.streamingtable_batchCount(this.__wbg_ptr);
126
+ return ret >>> 0;
127
+ }
120
128
  /**
121
129
  * Number of columns configured on this streaming table.
122
130
  * @returns {number}
@@ -144,10 +152,25 @@ export class StreamingTable {
144
152
  wasm.__wbindgen_add_to_stack_pointer(16);
145
153
  }
146
154
  }
155
+ /**
156
+ * Explicitly flush the current batch to `completed_batches`.
157
+ * Called automatically when `batch_size` rows accumulate.
158
+ */
159
+ flush() {
160
+ wasm.streamingtable_flush(this.__wbg_ptr);
161
+ }
162
+ /**
163
+ * Number of rows in the current (not-yet-flushed) batch.
164
+ * @returns {number}
165
+ */
166
+ pendingRowCount() {
167
+ const ret = wasm.streamingtable_pendingRowCount(this.__wbg_ptr);
168
+ return ret >>> 0;
169
+ }
147
170
  /**
148
171
  * Push one row as an array of cell strings (all rowspan=1). Returns an
149
172
  * error if the table has already been finished or if the row's cell count
150
- * does not match the column count.
173
+ * does not match the column count. Auto-flushes the batch when full.
151
174
  * @param {string[]} cells
152
175
  */
153
176
  pushRow(cells) {
@@ -168,6 +191,7 @@ export class StreamingTable {
168
191
  /**
169
192
  * Push one row with per-cell rowspan values. `cells` is a JS array of
170
193
  * `[text, rowspan]` two-element arrays. `rowspan == 1` is a normal cell.
194
+ * Auto-flushes the batch when full.
171
195
  * @param {any} cells
172
196
  */
173
197
  pushRowSpan(cells) {
@@ -1945,6 +1969,34 @@ export class WasmFluentPageBuilder {
1945
1969
  wasm.__wbindgen_add_to_stack_pointer(16);
1946
1970
  }
1947
1971
  }
1972
+ /**
1973
+ * Draw a dashed line. `dash` is alternating on/off lengths in points; `phase` is the starting offset.
1974
+ * @param {number} x1
1975
+ * @param {number} y1
1976
+ * @param {number} x2
1977
+ * @param {number} y2
1978
+ * @param {number} width
1979
+ * @param {number} r
1980
+ * @param {number} g
1981
+ * @param {number} b
1982
+ * @param {Float32Array} dash
1983
+ * @param {number} phase
1984
+ */
1985
+ strokeLineDashed(x1, y1, x2, y2, width, r, g, b, dash, phase) {
1986
+ try {
1987
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1988
+ const ptr0 = passArrayF32ToWasm0(dash, wasm.__wbindgen_export);
1989
+ const len0 = WASM_VECTOR_LEN;
1990
+ wasm.wasmfluentpagebuilder_strokeLineDashed(retptr, this.__wbg_ptr, x1, y1, x2, y2, width, r, g, b, ptr0, len0, phase);
1991
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1992
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1993
+ if (r1) {
1994
+ throw takeObject(r0);
1995
+ }
1996
+ } finally {
1997
+ wasm.__wbindgen_add_to_stack_pointer(16);
1998
+ }
1999
+ }
1948
2000
  /**
1949
2001
  * Draw a stroked rectangle with explicit stroke width and RGB colour.
1950
2002
  * @param {number} x
@@ -1969,6 +2021,34 @@ export class WasmFluentPageBuilder {
1969
2021
  wasm.__wbindgen_add_to_stack_pointer(16);
1970
2022
  }
1971
2023
  }
2024
+ /**
2025
+ * Draw a dashed rectangle border. `dash` is alternating on/off lengths in points; `phase` is the starting offset.
2026
+ * @param {number} x
2027
+ * @param {number} y
2028
+ * @param {number} w
2029
+ * @param {number} h
2030
+ * @param {number} width
2031
+ * @param {number} r
2032
+ * @param {number} g
2033
+ * @param {number} b
2034
+ * @param {Float32Array} dash
2035
+ * @param {number} phase
2036
+ */
2037
+ strokeRectDashed(x, y, w, h, width, r, g, b, dash, phase) {
2038
+ try {
2039
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
2040
+ const ptr0 = passArrayF32ToWasm0(dash, wasm.__wbindgen_export);
2041
+ const len0 = WASM_VECTOR_LEN;
2042
+ wasm.wasmfluentpagebuilder_strokeRectDashed(retptr, this.__wbg_ptr, x, y, w, h, width, r, g, b, ptr0, len0, phase);
2043
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
2044
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
2045
+ if (r1) {
2046
+ throw takeObject(r0);
2047
+ }
2048
+ } finally {
2049
+ wasm.__wbindgen_add_to_stack_pointer(16);
2050
+ }
2051
+ }
1972
2052
  /**
1973
2053
  * Render a buffered table from a JS object:
1974
2054
  *
@@ -2815,6 +2895,31 @@ export class WasmPdfDocument {
2815
2895
  wasm.__wbindgen_add_to_stack_pointer(16);
2816
2896
  }
2817
2897
  }
2898
+ /**
2899
+ * Convert the document to PDF/A compliance.
2900
+ *
2901
+ * Level must be one of: `"1a"`, `"1b"`, `"2a"`, `"2b"`, `"2u"`, `"3a"`, `"3b"`, `"3u"`.
2902
+ * Returns a JS object with `success`, `level`, `actions`, and `errors` fields.
2903
+ * @param {string} level
2904
+ * @returns {any}
2905
+ */
2906
+ convertToPdfA(level) {
2907
+ try {
2908
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
2909
+ const ptr0 = passStringToWasm0(level, wasm.__wbindgen_export, wasm.__wbindgen_export2);
2910
+ const len0 = WASM_VECTOR_LEN;
2911
+ wasm.wasmpdfdocument_convertToPdfA(retptr, this.__wbg_ptr, ptr0, len0);
2912
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
2913
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
2914
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
2915
+ if (r2) {
2916
+ throw takeObject(r1);
2917
+ }
2918
+ return takeObject(r0);
2919
+ } finally {
2920
+ wasm.__wbindgen_add_to_stack_pointer(16);
2921
+ }
2922
+ }
2818
2923
  /**
2819
2924
  * Crop margins from all pages.
2820
2925
  * @param {number} left
@@ -3541,6 +3646,31 @@ export class WasmPdfDocument {
3541
3646
  wasm.__wbindgen_add_to_stack_pointer(16);
3542
3647
  }
3543
3648
  }
3649
+ /**
3650
+ * Create a flattened PDF where each page is rendered as an image.
3651
+ * Burns in all annotations, form fields, and overlays.
3652
+ * Returns the flattened PDF as bytes.
3653
+ * @param {number | null} [dpi]
3654
+ * @returns {Uint8Array}
3655
+ */
3656
+ flattenToImages(dpi) {
3657
+ try {
3658
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
3659
+ wasm.wasmpdfdocument_flattenToImages(retptr, this.__wbg_ptr, isLikeNone(dpi) ? 0x100000001 : (dpi) >>> 0);
3660
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
3661
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
3662
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
3663
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
3664
+ if (r3) {
3665
+ throw takeObject(r2);
3666
+ }
3667
+ var v1 = getArrayU8FromWasm0(r0, r1).slice();
3668
+ wasm.__wbindgen_export4(r0, r1 * 1, 1);
3669
+ return v1;
3670
+ } finally {
3671
+ wasm.__wbindgen_add_to_stack_pointer(16);
3672
+ }
3673
+ }
3544
3674
  /**
3545
3675
  * Return warnings collected during the last form-flattening save.
3546
3676
  *
@@ -3979,6 +4109,36 @@ export class WasmPdfDocument {
3979
4109
  wasm.__wbindgen_add_to_stack_pointer(16);
3980
4110
  }
3981
4111
  }
4112
+ /**
4113
+ * Render a page to an image (PNG).
4114
+ *
4115
+ * Requires the `rendering` feature.
4116
+ *
4117
+ * @param page_index - Zero-based page number
4118
+ * @param dpi - Dots per inch (default: 150)
4119
+ * @returns Uint8Array containing the PNG image data
4120
+ * @param {number} page_index
4121
+ * @param {number | null} [dpi]
4122
+ * @returns {Uint8Array}
4123
+ */
4124
+ renderPage(page_index, dpi) {
4125
+ try {
4126
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
4127
+ wasm.wasmpdfdocument_renderPage(retptr, this.__wbg_ptr, page_index, isLikeNone(dpi) ? 0x100000001 : (dpi) >>> 0);
4128
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
4129
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
4130
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
4131
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
4132
+ if (r3) {
4133
+ throw takeObject(r2);
4134
+ }
4135
+ var v1 = getArrayU8FromWasm0(r0, r1).slice();
4136
+ wasm.__wbindgen_export4(r0, r1 * 1, 1);
4137
+ return v1;
4138
+ } finally {
4139
+ wasm.__wbindgen_add_to_stack_pointer(16);
4140
+ }
4141
+ }
3982
4142
  /**
3983
4143
  * Reposition an image on a page.
3984
4144
  * @param {number} page_index
@@ -5027,10 +5187,9 @@ if (Symbol.dispose) WasmPdfPageRegion.prototype[Symbol.dispose] = WasmPdfPageReg
5027
5187
 
5028
5188
  /**
5029
5189
  * A single existing PDF signature surfaced by
5030
- * `WasmPdfDocument.signatures()`. `verify()` runs the RSA-PKCS#1 v1.5
5031
- * signer-attributes check; `verifyDetached()` adds the
5032
- * `messageDigest` content-hash check. RSA-PSS / ECDSA signers still
5033
- * throw an `UnsupportedFeature`-mapped JS error.
5190
+ * `WasmPdfDocument.signatures()`. `verify()` runs the signer-attributes
5191
+ * check; `verifyDetached()` adds the `messageDigest` content-hash check.
5192
+ * Supported: RSA-PKCS#1 v1.5, RSA-PSS, ECDSA P-256/P-384.
5034
5193
  */
5035
5194
  export class WasmSignature {
5036
5195
  static __wrap(ptr) {
@@ -5361,7 +5520,11 @@ export class WasmTimestamp {
5361
5520
  }
5362
5521
  }
5363
5522
  /**
5364
- * Cryptographic verify not yet implemented.
5523
+ * Cryptographically verify this TimeStampToken.
5524
+ *
5525
+ * Returns `true` when the TSA's signature and `messageDigest` both pass.
5526
+ * Returns `false` when a crypto check fails (tampered token or wrong key).
5527
+ * Throws when the token is not CMS-wrapped or uses an unsupported algorithm.
5365
5528
  * @returns {boolean}
5366
5529
  */
5367
5530
  verify() {
@@ -5390,6 +5553,77 @@ export function disableLogging() {
5390
5553
  wasm.disableLogging();
5391
5554
  }
5392
5555
 
5556
+ /**
5557
+ * Generate a 1D barcode as an SVG string.
5558
+ *
5559
+ * `barcodeType`: 0=Code128, 1=Code39, 2=EAN13, 3=EAN8, 4=UPCA, 5=ITF, 6=Code93, 7=Codabar.
5560
+ * @param {number} barcode_type
5561
+ * @param {string} data
5562
+ * @returns {string}
5563
+ */
5564
+ export function generateBarcodeSvg(barcode_type, data) {
5565
+ let deferred3_0;
5566
+ let deferred3_1;
5567
+ try {
5568
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
5569
+ const ptr0 = passStringToWasm0(data, wasm.__wbindgen_export, wasm.__wbindgen_export2);
5570
+ const len0 = WASM_VECTOR_LEN;
5571
+ wasm.generateBarcodeSvg(retptr, barcode_type, ptr0, len0);
5572
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
5573
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
5574
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
5575
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
5576
+ var ptr2 = r0;
5577
+ var len2 = r1;
5578
+ if (r3) {
5579
+ ptr2 = 0; len2 = 0;
5580
+ throw takeObject(r2);
5581
+ }
5582
+ deferred3_0 = ptr2;
5583
+ deferred3_1 = len2;
5584
+ return getStringFromWasm0(ptr2, len2);
5585
+ } finally {
5586
+ wasm.__wbindgen_add_to_stack_pointer(16);
5587
+ wasm.__wbindgen_export4(deferred3_0, deferred3_1, 1);
5588
+ }
5589
+ }
5590
+
5591
+ /**
5592
+ * Generate a QR code as an SVG string.
5593
+ *
5594
+ * `errorCorrection`: 0=Low, 1=Medium, 2=Quartile, 3=High. `size`: advisory pixel size.
5595
+ * @param {string} data
5596
+ * @param {number} error_correction
5597
+ * @param {number} size
5598
+ * @returns {string}
5599
+ */
5600
+ export function generateQrSvg(data, error_correction, size) {
5601
+ let deferred3_0;
5602
+ let deferred3_1;
5603
+ try {
5604
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
5605
+ const ptr0 = passStringToWasm0(data, wasm.__wbindgen_export, wasm.__wbindgen_export2);
5606
+ const len0 = WASM_VECTOR_LEN;
5607
+ wasm.generateQrSvg(retptr, ptr0, len0, error_correction, size);
5608
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
5609
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
5610
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
5611
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
5612
+ var ptr2 = r0;
5613
+ var len2 = r1;
5614
+ if (r3) {
5615
+ ptr2 = 0; len2 = 0;
5616
+ throw takeObject(r2);
5617
+ }
5618
+ deferred3_0 = ptr2;
5619
+ deferred3_1 = len2;
5620
+ return getStringFromWasm0(ptr2, len2);
5621
+ } finally {
5622
+ wasm.__wbindgen_add_to_stack_pointer(16);
5623
+ wasm.__wbindgen_export4(deferred3_0, deferred3_1, 1);
5624
+ }
5625
+ }
5626
+
5393
5627
  /**
5394
5628
  * Set the maximum log level for pdf_oxide messages.
5395
5629
  *
Binary file
@@ -15,10 +15,15 @@ export const __wbg_wasmpdfdocument_free: (a: number, b: number) => void;
15
15
  export const __wbg_wasmpdfpageregion_free: (a: number, b: number) => void;
16
16
  export const __wbg_wasmsignature_free: (a: number, b: number) => void;
17
17
  export const __wbg_wasmtimestamp_free: (a: number, b: number) => void;
18
+ export const generateBarcodeSvg: (a: number, b: number, c: number, d: number) => void;
19
+ export const generateQrSvg: (a: number, b: number, c: number, d: number, e: number) => void;
18
20
  export const setLogLevel: (a: number, b: number, c: number) => void;
19
21
  export const signPdfBytes: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => void;
22
+ export const streamingtable_batchCount: (a: number) => number;
20
23
  export const streamingtable_columnCount: (a: number) => number;
21
24
  export const streamingtable_finish: (a: number, b: number) => void;
25
+ export const streamingtable_flush: (a: number) => void;
26
+ export const streamingtable_pendingRowCount: (a: number) => number;
22
27
  export const streamingtable_pushRow: (a: number, b: number, c: number, d: number) => void;
23
28
  export const streamingtable_pushRowSpan: (a: number, b: number, c: number) => void;
24
29
  export const wasmartifact_center: (a: number, b: number) => number;
@@ -106,7 +111,9 @@ export const wasmfluentpagebuilder_stickyNoteAt: (a: number, b: number, c: numbe
106
111
  export const wasmfluentpagebuilder_streamingTable: (a: number, b: number, c: number) => void;
107
112
  export const wasmfluentpagebuilder_strikeout: (a: number, b: number, c: number, d: number, e: number) => void;
108
113
  export const wasmfluentpagebuilder_strokeLine: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => void;
114
+ export const wasmfluentpagebuilder_strokeLineDashed: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number) => void;
109
115
  export const wasmfluentpagebuilder_strokeRect: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => void;
116
+ export const wasmfluentpagebuilder_strokeRectDashed: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number) => void;
110
117
  export const wasmfluentpagebuilder_table: (a: number, b: number, c: number) => void;
111
118
  export const wasmfluentpagebuilder_text: (a: number, b: number, c: number, d: number) => void;
112
119
  export const wasmfluentpagebuilder_textField: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => void;
@@ -135,6 +142,7 @@ export const wasmpdfdocument_applyAllRedactions: (a: number, b: number) => void;
135
142
  export const wasmpdfdocument_applyPageRedactions: (a: number, b: number, c: number) => void;
136
143
  export const wasmpdfdocument_authenticate: (a: number, b: number, c: number, d: number) => void;
137
144
  export const wasmpdfdocument_clearEraseRegions: (a: number, b: number, c: number) => void;
145
+ export const wasmpdfdocument_convertToPdfA: (a: number, b: number, c: number, d: number) => void;
138
146
  export const wasmpdfdocument_cropMargins: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
139
147
  export const wasmpdfdocument_deletePage: (a: number, b: number, c: number) => void;
140
148
  export const wasmpdfdocument_editFooter: (a: number, b: number, c: number) => void;
@@ -165,6 +173,7 @@ export const wasmpdfdocument_flattenAllAnnotations: (a: number, b: number) => vo
165
173
  export const wasmpdfdocument_flattenForms: (a: number, b: number) => void;
166
174
  export const wasmpdfdocument_flattenFormsOnPage: (a: number, b: number, c: number) => void;
167
175
  export const wasmpdfdocument_flattenPageAnnotations: (a: number, b: number, c: number) => void;
176
+ export const wasmpdfdocument_flattenToImages: (a: number, b: number, c: number) => void;
168
177
  export const wasmpdfdocument_flattenWarnings: (a: number, b: number) => void;
169
178
  export const wasmpdfdocument_getAnnotations: (a: number, b: number, c: number) => void;
170
179
  export const wasmpdfdocument_getFormFieldValue: (a: number, b: number, c: number, d: number) => void;
@@ -184,6 +193,7 @@ export const wasmpdfdocument_pageRotation: (a: number, b: number, c: number) =>
184
193
  export const wasmpdfdocument_removeArtifacts: (a: number, b: number, c: number) => void;
185
194
  export const wasmpdfdocument_removeFooters: (a: number, b: number, c: number) => void;
186
195
  export const wasmpdfdocument_removeHeaders: (a: number, b: number, c: number) => void;
196
+ export const wasmpdfdocument_renderPage: (a: number, b: number, c: number, d: number) => void;
187
197
  export const wasmpdfdocument_repositionImage: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
188
198
  export const wasmpdfdocument_resizeImage: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
189
199
  export const wasmpdfdocument_rotateAllPages: (a: number, b: number, c: number) => void;
@@ -254,8 +264,8 @@ export const wasmfooter_new: () => number;
254
264
  export const wasmheader_new: () => number;
255
265
  export const __wbg_wasmocrengine_free: (a: number, b: number) => void;
256
266
  export const disableLogging: () => void;
257
- export const __wbg_wasmheader_free: (a: number, b: number) => void;
258
267
  export const __wbg_wasmfooter_free: (a: number, b: number) => void;
268
+ export const __wbg_wasmheader_free: (a: number, b: number) => void;
259
269
  export const lut_inverse_interp16: (a: number, b: number, c: number) => number;
260
270
  export const qcms_profile_precache_output_transform: (a: number) => void;
261
271
  export const lut_interp_linear16: (a: number, b: number, c: number) => number;