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.
@@ -119,6 +119,14 @@ class StreamingTable {
119
119
  const ptr = this.__destroy_into_raw();
120
120
  wasm.__wbg_streamingtable_free(ptr, 0);
121
121
  }
122
+ /**
123
+ * Number of fully-completed batches waiting for finish().
124
+ * @returns {number}
125
+ */
126
+ batchCount() {
127
+ const ret = wasm.streamingtable_batchCount(this.__wbg_ptr);
128
+ return ret >>> 0;
129
+ }
122
130
  /**
123
131
  * Number of columns configured on this streaming table.
124
132
  * @returns {number}
@@ -146,10 +154,25 @@ class StreamingTable {
146
154
  wasm.__wbindgen_add_to_stack_pointer(16);
147
155
  }
148
156
  }
157
+ /**
158
+ * Explicitly flush the current batch to `completed_batches`.
159
+ * Called automatically when `batch_size` rows accumulate.
160
+ */
161
+ flush() {
162
+ wasm.streamingtable_flush(this.__wbg_ptr);
163
+ }
164
+ /**
165
+ * Number of rows in the current (not-yet-flushed) batch.
166
+ * @returns {number}
167
+ */
168
+ pendingRowCount() {
169
+ const ret = wasm.streamingtable_pendingRowCount(this.__wbg_ptr);
170
+ return ret >>> 0;
171
+ }
149
172
  /**
150
173
  * Push one row as an array of cell strings (all rowspan=1). Returns an
151
174
  * error if the table has already been finished or if the row's cell count
152
- * does not match the column count.
175
+ * does not match the column count. Auto-flushes the batch when full.
153
176
  * @param {string[]} cells
154
177
  */
155
178
  pushRow(cells) {
@@ -170,6 +193,7 @@ class StreamingTable {
170
193
  /**
171
194
  * Push one row with per-cell rowspan values. `cells` is a JS array of
172
195
  * `[text, rowspan]` two-element arrays. `rowspan == 1` is a normal cell.
196
+ * Auto-flushes the batch when full.
173
197
  * @param {any} cells
174
198
  */
175
199
  pushRowSpan(cells) {
@@ -1952,6 +1976,34 @@ class WasmFluentPageBuilder {
1952
1976
  wasm.__wbindgen_add_to_stack_pointer(16);
1953
1977
  }
1954
1978
  }
1979
+ /**
1980
+ * Draw a dashed line. `dash` is alternating on/off lengths in points; `phase` is the starting offset.
1981
+ * @param {number} x1
1982
+ * @param {number} y1
1983
+ * @param {number} x2
1984
+ * @param {number} y2
1985
+ * @param {number} width
1986
+ * @param {number} r
1987
+ * @param {number} g
1988
+ * @param {number} b
1989
+ * @param {Float32Array} dash
1990
+ * @param {number} phase
1991
+ */
1992
+ strokeLineDashed(x1, y1, x2, y2, width, r, g, b, dash, phase) {
1993
+ try {
1994
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1995
+ const ptr0 = passArrayF32ToWasm0(dash, wasm.__wbindgen_export);
1996
+ const len0 = WASM_VECTOR_LEN;
1997
+ wasm.wasmfluentpagebuilder_strokeLineDashed(retptr, this.__wbg_ptr, x1, y1, x2, y2, width, r, g, b, ptr0, len0, phase);
1998
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1999
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
2000
+ if (r1) {
2001
+ throw takeObject(r0);
2002
+ }
2003
+ } finally {
2004
+ wasm.__wbindgen_add_to_stack_pointer(16);
2005
+ }
2006
+ }
1955
2007
  /**
1956
2008
  * Draw a stroked rectangle with explicit stroke width and RGB colour.
1957
2009
  * @param {number} x
@@ -1976,6 +2028,34 @@ class WasmFluentPageBuilder {
1976
2028
  wasm.__wbindgen_add_to_stack_pointer(16);
1977
2029
  }
1978
2030
  }
2031
+ /**
2032
+ * Draw a dashed rectangle border. `dash` is alternating on/off lengths in points; `phase` is the starting offset.
2033
+ * @param {number} x
2034
+ * @param {number} y
2035
+ * @param {number} w
2036
+ * @param {number} h
2037
+ * @param {number} width
2038
+ * @param {number} r
2039
+ * @param {number} g
2040
+ * @param {number} b
2041
+ * @param {Float32Array} dash
2042
+ * @param {number} phase
2043
+ */
2044
+ strokeRectDashed(x, y, w, h, width, r, g, b, dash, phase) {
2045
+ try {
2046
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
2047
+ const ptr0 = passArrayF32ToWasm0(dash, wasm.__wbindgen_export);
2048
+ const len0 = WASM_VECTOR_LEN;
2049
+ wasm.wasmfluentpagebuilder_strokeRectDashed(retptr, this.__wbg_ptr, x, y, w, h, width, r, g, b, ptr0, len0, phase);
2050
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
2051
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
2052
+ if (r1) {
2053
+ throw takeObject(r0);
2054
+ }
2055
+ } finally {
2056
+ wasm.__wbindgen_add_to_stack_pointer(16);
2057
+ }
2058
+ }
1979
2059
  /**
1980
2060
  * Render a buffered table from a JS object:
1981
2061
  *
@@ -2829,6 +2909,31 @@ class WasmPdfDocument {
2829
2909
  wasm.__wbindgen_add_to_stack_pointer(16);
2830
2910
  }
2831
2911
  }
2912
+ /**
2913
+ * Convert the document to PDF/A compliance.
2914
+ *
2915
+ * Level must be one of: `"1a"`, `"1b"`, `"2a"`, `"2b"`, `"2u"`, `"3a"`, `"3b"`, `"3u"`.
2916
+ * Returns a JS object with `success`, `level`, `actions`, and `errors` fields.
2917
+ * @param {string} level
2918
+ * @returns {any}
2919
+ */
2920
+ convertToPdfA(level) {
2921
+ try {
2922
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
2923
+ const ptr0 = passStringToWasm0(level, wasm.__wbindgen_export, wasm.__wbindgen_export2);
2924
+ const len0 = WASM_VECTOR_LEN;
2925
+ wasm.wasmpdfdocument_convertToPdfA(retptr, this.__wbg_ptr, ptr0, len0);
2926
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
2927
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
2928
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
2929
+ if (r2) {
2930
+ throw takeObject(r1);
2931
+ }
2932
+ return takeObject(r0);
2933
+ } finally {
2934
+ wasm.__wbindgen_add_to_stack_pointer(16);
2935
+ }
2936
+ }
2832
2937
  /**
2833
2938
  * Crop margins from all pages.
2834
2939
  * @param {number} left
@@ -3555,6 +3660,31 @@ class WasmPdfDocument {
3555
3660
  wasm.__wbindgen_add_to_stack_pointer(16);
3556
3661
  }
3557
3662
  }
3663
+ /**
3664
+ * Create a flattened PDF where each page is rendered as an image.
3665
+ * Burns in all annotations, form fields, and overlays.
3666
+ * Returns the flattened PDF as bytes.
3667
+ * @param {number | null} [dpi]
3668
+ * @returns {Uint8Array}
3669
+ */
3670
+ flattenToImages(dpi) {
3671
+ try {
3672
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
3673
+ wasm.wasmpdfdocument_flattenToImages(retptr, this.__wbg_ptr, isLikeNone(dpi) ? 0x100000001 : (dpi) >>> 0);
3674
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
3675
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
3676
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
3677
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
3678
+ if (r3) {
3679
+ throw takeObject(r2);
3680
+ }
3681
+ var v1 = getArrayU8FromWasm0(r0, r1).slice();
3682
+ wasm.__wbindgen_export4(r0, r1 * 1, 1);
3683
+ return v1;
3684
+ } finally {
3685
+ wasm.__wbindgen_add_to_stack_pointer(16);
3686
+ }
3687
+ }
3558
3688
  /**
3559
3689
  * Return warnings collected during the last form-flattening save.
3560
3690
  *
@@ -3993,6 +4123,36 @@ class WasmPdfDocument {
3993
4123
  wasm.__wbindgen_add_to_stack_pointer(16);
3994
4124
  }
3995
4125
  }
4126
+ /**
4127
+ * Render a page to an image (PNG).
4128
+ *
4129
+ * Requires the `rendering` feature.
4130
+ *
4131
+ * @param page_index - Zero-based page number
4132
+ * @param dpi - Dots per inch (default: 150)
4133
+ * @returns Uint8Array containing the PNG image data
4134
+ * @param {number} page_index
4135
+ * @param {number | null} [dpi]
4136
+ * @returns {Uint8Array}
4137
+ */
4138
+ renderPage(page_index, dpi) {
4139
+ try {
4140
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
4141
+ wasm.wasmpdfdocument_renderPage(retptr, this.__wbg_ptr, page_index, isLikeNone(dpi) ? 0x100000001 : (dpi) >>> 0);
4142
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
4143
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
4144
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
4145
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
4146
+ if (r3) {
4147
+ throw takeObject(r2);
4148
+ }
4149
+ var v1 = getArrayU8FromWasm0(r0, r1).slice();
4150
+ wasm.__wbindgen_export4(r0, r1 * 1, 1);
4151
+ return v1;
4152
+ } finally {
4153
+ wasm.__wbindgen_add_to_stack_pointer(16);
4154
+ }
4155
+ }
3996
4156
  /**
3997
4157
  * Reposition an image on a page.
3998
4158
  * @param {number} page_index
@@ -5043,10 +5203,9 @@ exports.WasmPdfPageRegion = WasmPdfPageRegion;
5043
5203
 
5044
5204
  /**
5045
5205
  * A single existing PDF signature surfaced by
5046
- * `WasmPdfDocument.signatures()`. `verify()` runs the RSA-PKCS#1 v1.5
5047
- * signer-attributes check; `verifyDetached()` adds the
5048
- * `messageDigest` content-hash check. RSA-PSS / ECDSA signers still
5049
- * throw an `UnsupportedFeature`-mapped JS error.
5206
+ * `WasmPdfDocument.signatures()`. `verify()` runs the signer-attributes
5207
+ * check; `verifyDetached()` adds the `messageDigest` content-hash check.
5208
+ * Supported: RSA-PKCS#1 v1.5, RSA-PSS, ECDSA P-256/P-384.
5050
5209
  */
5051
5210
  class WasmSignature {
5052
5211
  static __wrap(ptr) {
@@ -5378,7 +5537,11 @@ class WasmTimestamp {
5378
5537
  }
5379
5538
  }
5380
5539
  /**
5381
- * Cryptographic verify not yet implemented.
5540
+ * Cryptographically verify this TimeStampToken.
5541
+ *
5542
+ * Returns `true` when the TSA's signature and `messageDigest` both pass.
5543
+ * Returns `false` when a crypto check fails (tampered token or wrong key).
5544
+ * Throws when the token is not CMS-wrapped or uses an unsupported algorithm.
5382
5545
  * @returns {boolean}
5383
5546
  */
5384
5547
  verify() {
@@ -5409,6 +5572,79 @@ function disableLogging() {
5409
5572
  }
5410
5573
  exports.disableLogging = disableLogging;
5411
5574
 
5575
+ /**
5576
+ * Generate a 1D barcode as an SVG string.
5577
+ *
5578
+ * `barcodeType`: 0=Code128, 1=Code39, 2=EAN13, 3=EAN8, 4=UPCA, 5=ITF, 6=Code93, 7=Codabar.
5579
+ * @param {number} barcode_type
5580
+ * @param {string} data
5581
+ * @returns {string}
5582
+ */
5583
+ function generateBarcodeSvg(barcode_type, data) {
5584
+ let deferred3_0;
5585
+ let deferred3_1;
5586
+ try {
5587
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
5588
+ const ptr0 = passStringToWasm0(data, wasm.__wbindgen_export, wasm.__wbindgen_export2);
5589
+ const len0 = WASM_VECTOR_LEN;
5590
+ wasm.generateBarcodeSvg(retptr, barcode_type, ptr0, len0);
5591
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
5592
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
5593
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
5594
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
5595
+ var ptr2 = r0;
5596
+ var len2 = r1;
5597
+ if (r3) {
5598
+ ptr2 = 0; len2 = 0;
5599
+ throw takeObject(r2);
5600
+ }
5601
+ deferred3_0 = ptr2;
5602
+ deferred3_1 = len2;
5603
+ return getStringFromWasm0(ptr2, len2);
5604
+ } finally {
5605
+ wasm.__wbindgen_add_to_stack_pointer(16);
5606
+ wasm.__wbindgen_export4(deferred3_0, deferred3_1, 1);
5607
+ }
5608
+ }
5609
+ exports.generateBarcodeSvg = generateBarcodeSvg;
5610
+
5611
+ /**
5612
+ * Generate a QR code as an SVG string.
5613
+ *
5614
+ * `errorCorrection`: 0=Low, 1=Medium, 2=Quartile, 3=High. `size`: advisory pixel size.
5615
+ * @param {string} data
5616
+ * @param {number} error_correction
5617
+ * @param {number} size
5618
+ * @returns {string}
5619
+ */
5620
+ function generateQrSvg(data, error_correction, size) {
5621
+ let deferred3_0;
5622
+ let deferred3_1;
5623
+ try {
5624
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
5625
+ const ptr0 = passStringToWasm0(data, wasm.__wbindgen_export, wasm.__wbindgen_export2);
5626
+ const len0 = WASM_VECTOR_LEN;
5627
+ wasm.generateQrSvg(retptr, ptr0, len0, error_correction, size);
5628
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
5629
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
5630
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
5631
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
5632
+ var ptr2 = r0;
5633
+ var len2 = r1;
5634
+ if (r3) {
5635
+ ptr2 = 0; len2 = 0;
5636
+ throw takeObject(r2);
5637
+ }
5638
+ deferred3_0 = ptr2;
5639
+ deferred3_1 = len2;
5640
+ return getStringFromWasm0(ptr2, len2);
5641
+ } finally {
5642
+ wasm.__wbindgen_add_to_stack_pointer(16);
5643
+ wasm.__wbindgen_export4(deferred3_0, deferred3_1, 1);
5644
+ }
5645
+ }
5646
+ exports.generateQrSvg = generateQrSvg;
5647
+
5412
5648
  /**
5413
5649
  * Set the maximum log level for pdf_oxide messages.
5414
5650
  *
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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pdf-oxide-wasm",
3
- "version": "0.3.39",
3
+ "version": "0.3.41",
4
4
  "description": "Fast, zero-dependency PDF toolkit for Node.js, browsers, and edge runtimes — text extraction, markdown/HTML conversion, search, form filling, creation, and editing. Rust core compiled to WebAssembly.",
5
5
  "license": "MIT OR Apache-2.0",
6
6
  "repository": {
@@ -60,6 +60,10 @@ export class StreamingTable {
60
60
  private constructor();
61
61
  free(): void;
62
62
  [Symbol.dispose](): void;
63
+ /**
64
+ * Number of fully-completed batches waiting for finish().
65
+ */
66
+ batchCount(): number;
63
67
  /**
64
68
  * Number of columns configured on this streaming table.
65
69
  */
@@ -71,15 +75,25 @@ export class StreamingTable {
71
75
  * throws.
72
76
  */
73
77
  finish(): void;
78
+ /**
79
+ * Explicitly flush the current batch to `completed_batches`.
80
+ * Called automatically when `batch_size` rows accumulate.
81
+ */
82
+ flush(): void;
83
+ /**
84
+ * Number of rows in the current (not-yet-flushed) batch.
85
+ */
86
+ pendingRowCount(): number;
74
87
  /**
75
88
  * Push one row as an array of cell strings (all rowspan=1). Returns an
76
89
  * error if the table has already been finished or if the row's cell count
77
- * does not match the column count.
90
+ * does not match the column count. Auto-flushes the batch when full.
78
91
  */
79
92
  pushRow(cells: string[]): void;
80
93
  /**
81
94
  * Push one row with per-cell rowspan values. `cells` is a JS array of
82
95
  * `[text, rowspan]` two-element arrays. `rowspan == 1` is a normal cell.
96
+ * Auto-flushes the batch when full.
83
97
  */
84
98
  pushRowSpan(cells: any): void;
85
99
  }
@@ -450,10 +464,18 @@ export class WasmFluentPageBuilder {
450
464
  * Draw a straight line with explicit stroke width and RGB colour.
451
465
  */
452
466
  strokeLine(x1: number, y1: number, x2: number, y2: number, width: number, r: number, g: number, b: number): void;
467
+ /**
468
+ * Draw a dashed line. `dash` is alternating on/off lengths in points; `phase` is the starting offset.
469
+ */
470
+ strokeLineDashed(x1: number, y1: number, x2: number, y2: number, width: number, r: number, g: number, b: number, dash: Float32Array, phase: number): void;
453
471
  /**
454
472
  * Draw a stroked rectangle with explicit stroke width and RGB colour.
455
473
  */
456
474
  strokeRect(x: number, y: number, w: number, h: number, width: number, r: number, g: number, b: number): void;
475
+ /**
476
+ * Draw a dashed rectangle border. `dash` is alternating on/off lengths in points; `phase` is the starting offset.
477
+ */
478
+ strokeRectDashed(x: number, y: number, w: number, h: number, width: number, r: number, g: number, b: number, dash: Float32Array, phase: number): void;
457
479
  /**
458
480
  * Render a buffered table from a JS object:
459
481
  *
@@ -700,6 +722,13 @@ export class WasmPdfDocument {
700
722
  * Clear all pending erase operations for a page.
701
723
  */
702
724
  clearEraseRegions(page_index: number): void;
725
+ /**
726
+ * Convert the document to PDF/A compliance.
727
+ *
728
+ * Level must be one of: `"1a"`, `"1b"`, `"2a"`, `"2b"`, `"2u"`, `"3a"`, `"3b"`, `"3u"`.
729
+ * Returns a JS object with `success`, `level`, `actions`, and `errors` fields.
730
+ */
731
+ convertToPdfA(level: string): any;
703
732
  /**
704
733
  * Crop margins from all pages.
705
734
  */
@@ -899,6 +928,12 @@ export class WasmPdfDocument {
899
928
  * Flatten annotations on a page into the page content.
900
929
  */
901
930
  flattenPageAnnotations(page_index: number): void;
931
+ /**
932
+ * Create a flattened PDF where each page is rendered as an image.
933
+ * Burns in all annotations, form fields, and overlays.
934
+ * Returns the flattened PDF as bytes.
935
+ */
936
+ flattenToImages(dpi?: number | null): Uint8Array;
902
937
  /**
903
938
  * Return warnings collected during the last form-flattening save.
904
939
  *
@@ -1031,6 +1066,16 @@ export class WasmPdfDocument {
1031
1066
  * @param threshold - Fraction of pages (0.0-1.0) where text must repeat (heuristic mode)
1032
1067
  */
1033
1068
  removeHeaders(threshold: number): number;
1069
+ /**
1070
+ * Render a page to an image (PNG).
1071
+ *
1072
+ * Requires the `rendering` feature.
1073
+ *
1074
+ * @param page_index - Zero-based page number
1075
+ * @param dpi - Dots per inch (default: 150)
1076
+ * @returns Uint8Array containing the PNG image data
1077
+ */
1078
+ renderPage(page_index: number, dpi?: number | null): Uint8Array;
1034
1079
  /**
1035
1080
  * Reposition an image on a page.
1036
1081
  */
@@ -1254,10 +1299,9 @@ export class WasmPdfPageRegion {
1254
1299
 
1255
1300
  /**
1256
1301
  * A single existing PDF signature surfaced by
1257
- * `WasmPdfDocument.signatures()`. `verify()` runs the RSA-PKCS#1 v1.5
1258
- * signer-attributes check; `verifyDetached()` adds the
1259
- * `messageDigest` content-hash check. RSA-PSS / ECDSA signers still
1260
- * throw an `UnsupportedFeature`-mapped JS error.
1302
+ * `WasmPdfDocument.signatures()`. `verify()` runs the signer-attributes
1303
+ * check; `verifyDetached()` adds the `messageDigest` content-hash check.
1304
+ * Supported: RSA-PKCS#1 v1.5, RSA-PSS, ECDSA P-256/P-384.
1261
1305
  */
1262
1306
  export class WasmSignature {
1263
1307
  private constructor();
@@ -1335,7 +1379,11 @@ export class WasmTimestamp {
1335
1379
  */
1336
1380
  static parse(data: Uint8Array): WasmTimestamp;
1337
1381
  /**
1338
- * Cryptographic verify not yet implemented.
1382
+ * Cryptographically verify this TimeStampToken.
1383
+ *
1384
+ * Returns `true` when the TSA's signature and `messageDigest` both pass.
1385
+ * Returns `false` when a crypto check fails (tampered token or wrong key).
1386
+ * Throws when the token is not CMS-wrapped or uses an unsupported algorithm.
1339
1387
  */
1340
1388
  verify(): boolean;
1341
1389
  /**
@@ -1371,6 +1419,20 @@ export class WasmTimestamp {
1371
1419
  */
1372
1420
  export function disableLogging(): void;
1373
1421
 
1422
+ /**
1423
+ * Generate a 1D barcode as an SVG string.
1424
+ *
1425
+ * `barcodeType`: 0=Code128, 1=Code39, 2=EAN13, 3=EAN8, 4=UPCA, 5=ITF, 6=Code93, 7=Codabar.
1426
+ */
1427
+ export function generateBarcodeSvg(barcode_type: number, data: string): string;
1428
+
1429
+ /**
1430
+ * Generate a QR code as an SVG string.
1431
+ *
1432
+ * `errorCorrection`: 0=Low, 1=Medium, 2=Quartile, 3=High. `size`: advisory pixel size.
1433
+ */
1434
+ export function generateQrSvg(data: string, error_correction: number, size: number): string;
1435
+
1374
1436
  /**
1375
1437
  * Set the maximum log level for pdf_oxide messages.
1376
1438
  *
@@ -1416,10 +1478,15 @@ export interface InitOutput {
1416
1478
  readonly __wbg_wasmpdfpageregion_free: (a: number, b: number) => void;
1417
1479
  readonly __wbg_wasmsignature_free: (a: number, b: number) => void;
1418
1480
  readonly __wbg_wasmtimestamp_free: (a: number, b: number) => void;
1481
+ readonly generateBarcodeSvg: (a: number, b: number, c: number, d: number) => void;
1482
+ readonly generateQrSvg: (a: number, b: number, c: number, d: number, e: number) => void;
1419
1483
  readonly setLogLevel: (a: number, b: number, c: number) => void;
1420
1484
  readonly signPdfBytes: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => void;
1485
+ readonly streamingtable_batchCount: (a: number) => number;
1421
1486
  readonly streamingtable_columnCount: (a: number) => number;
1422
1487
  readonly streamingtable_finish: (a: number, b: number) => void;
1488
+ readonly streamingtable_flush: (a: number) => void;
1489
+ readonly streamingtable_pendingRowCount: (a: number) => number;
1423
1490
  readonly streamingtable_pushRow: (a: number, b: number, c: number, d: number) => void;
1424
1491
  readonly streamingtable_pushRowSpan: (a: number, b: number, c: number) => void;
1425
1492
  readonly wasmartifact_center: (a: number, b: number) => number;
@@ -1507,7 +1574,9 @@ export interface InitOutput {
1507
1574
  readonly wasmfluentpagebuilder_streamingTable: (a: number, b: number, c: number) => void;
1508
1575
  readonly wasmfluentpagebuilder_strikeout: (a: number, b: number, c: number, d: number, e: number) => void;
1509
1576
  readonly wasmfluentpagebuilder_strokeLine: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => void;
1577
+ readonly 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;
1510
1578
  readonly wasmfluentpagebuilder_strokeRect: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => void;
1579
+ readonly 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;
1511
1580
  readonly wasmfluentpagebuilder_table: (a: number, b: number, c: number) => void;
1512
1581
  readonly wasmfluentpagebuilder_text: (a: number, b: number, c: number, d: number) => void;
1513
1582
  readonly wasmfluentpagebuilder_textField: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => void;
@@ -1536,6 +1605,7 @@ export interface InitOutput {
1536
1605
  readonly wasmpdfdocument_applyPageRedactions: (a: number, b: number, c: number) => void;
1537
1606
  readonly wasmpdfdocument_authenticate: (a: number, b: number, c: number, d: number) => void;
1538
1607
  readonly wasmpdfdocument_clearEraseRegions: (a: number, b: number, c: number) => void;
1608
+ readonly wasmpdfdocument_convertToPdfA: (a: number, b: number, c: number, d: number) => void;
1539
1609
  readonly wasmpdfdocument_cropMargins: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
1540
1610
  readonly wasmpdfdocument_deletePage: (a: number, b: number, c: number) => void;
1541
1611
  readonly wasmpdfdocument_editFooter: (a: number, b: number, c: number) => void;
@@ -1566,6 +1636,7 @@ export interface InitOutput {
1566
1636
  readonly wasmpdfdocument_flattenForms: (a: number, b: number) => void;
1567
1637
  readonly wasmpdfdocument_flattenFormsOnPage: (a: number, b: number, c: number) => void;
1568
1638
  readonly wasmpdfdocument_flattenPageAnnotations: (a: number, b: number, c: number) => void;
1639
+ readonly wasmpdfdocument_flattenToImages: (a: number, b: number, c: number) => void;
1569
1640
  readonly wasmpdfdocument_flattenWarnings: (a: number, b: number) => void;
1570
1641
  readonly wasmpdfdocument_getAnnotations: (a: number, b: number, c: number) => void;
1571
1642
  readonly wasmpdfdocument_getFormFieldValue: (a: number, b: number, c: number, d: number) => void;
@@ -1585,6 +1656,7 @@ export interface InitOutput {
1585
1656
  readonly wasmpdfdocument_removeArtifacts: (a: number, b: number, c: number) => void;
1586
1657
  readonly wasmpdfdocument_removeFooters: (a: number, b: number, c: number) => void;
1587
1658
  readonly wasmpdfdocument_removeHeaders: (a: number, b: number, c: number) => void;
1659
+ readonly wasmpdfdocument_renderPage: (a: number, b: number, c: number, d: number) => void;
1588
1660
  readonly wasmpdfdocument_repositionImage: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
1589
1661
  readonly wasmpdfdocument_resizeImage: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
1590
1662
  readonly wasmpdfdocument_rotateAllPages: (a: number, b: number, c: number) => void;
@@ -1655,8 +1727,8 @@ export interface InitOutput {
1655
1727
  readonly wasmheader_new: () => number;
1656
1728
  readonly __wbg_wasmocrengine_free: (a: number, b: number) => void;
1657
1729
  readonly disableLogging: () => void;
1658
- readonly __wbg_wasmheader_free: (a: number, b: number) => void;
1659
1730
  readonly __wbg_wasmfooter_free: (a: number, b: number) => void;
1731
+ readonly __wbg_wasmheader_free: (a: number, b: number) => void;
1660
1732
  readonly lut_inverse_interp16: (a: number, b: number, c: number) => number;
1661
1733
  readonly qcms_profile_precache_output_transform: (a: number) => void;
1662
1734
  readonly lut_interp_linear16: (a: number, b: number, c: number) => number;