@docmentis/udoc-viewer 0.6.7 → 0.6.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/README.md +39 -3
  2. package/dist/package.json +1 -1
  3. package/dist/src/UDocClient.d.ts +66 -9
  4. package/dist/src/UDocClient.d.ts.map +1 -1
  5. package/dist/src/UDocClient.js +44 -1
  6. package/dist/src/UDocClient.js.map +1 -1
  7. package/dist/src/UDocViewer.d.ts +39 -3
  8. package/dist/src/UDocViewer.d.ts.map +1 -1
  9. package/dist/src/UDocViewer.js +262 -16
  10. package/dist/src/UDocViewer.js.map +1 -1
  11. package/dist/src/fonts.d.ts +32 -14
  12. package/dist/src/fonts.d.ts.map +1 -1
  13. package/dist/src/fonts.js +33 -14
  14. package/dist/src/fonts.js.map +1 -1
  15. package/dist/src/index.d.ts +2 -3
  16. package/dist/src/index.d.ts.map +1 -1
  17. package/dist/src/index.js +0 -4
  18. package/dist/src/index.js.map +1 -1
  19. package/dist/src/ui/viewer/actions.d.ts +21 -0
  20. package/dist/src/ui/viewer/actions.d.ts.map +1 -1
  21. package/dist/src/ui/viewer/components/LeftPanel.d.ts.map +1 -1
  22. package/dist/src/ui/viewer/components/LeftPanel.js +5 -1
  23. package/dist/src/ui/viewer/components/LeftPanel.js.map +1 -1
  24. package/dist/src/ui/viewer/components/LoadingOverlay.d.ts.map +1 -1
  25. package/dist/src/ui/viewer/components/LoadingOverlay.js +24 -4
  26. package/dist/src/ui/viewer/components/LoadingOverlay.js.map +1 -1
  27. package/dist/src/ui/viewer/components/PrintDialog.d.ts +33 -0
  28. package/dist/src/ui/viewer/components/PrintDialog.d.ts.map +1 -0
  29. package/dist/src/ui/viewer/components/PrintDialog.js +248 -0
  30. package/dist/src/ui/viewer/components/PrintDialog.js.map +1 -0
  31. package/dist/src/ui/viewer/components/RightPanel.d.ts.map +1 -1
  32. package/dist/src/ui/viewer/components/RightPanel.js +5 -1
  33. package/dist/src/ui/viewer/components/RightPanel.js.map +1 -1
  34. package/dist/src/ui/viewer/components/Toolbar.d.ts +2 -0
  35. package/dist/src/ui/viewer/components/Toolbar.d.ts.map +1 -1
  36. package/dist/src/ui/viewer/components/Toolbar.js +44 -5
  37. package/dist/src/ui/viewer/components/Toolbar.js.map +1 -1
  38. package/dist/src/ui/viewer/icons.d.ts +2 -0
  39. package/dist/src/ui/viewer/icons.d.ts.map +1 -1
  40. package/dist/src/ui/viewer/icons.js +4 -0
  41. package/dist/src/ui/viewer/icons.js.map +1 -1
  42. package/dist/src/ui/viewer/reducer.d.ts.map +1 -1
  43. package/dist/src/ui/viewer/reducer.js +54 -0
  44. package/dist/src/ui/viewer/reducer.js.map +1 -1
  45. package/dist/src/ui/viewer/shell.d.ts +3 -0
  46. package/dist/src/ui/viewer/shell.d.ts.map +1 -1
  47. package/dist/src/ui/viewer/shell.js +62 -2
  48. package/dist/src/ui/viewer/shell.js.map +1 -1
  49. package/dist/src/ui/viewer/state.d.ts +17 -1
  50. package/dist/src/ui/viewer/state.d.ts.map +1 -1
  51. package/dist/src/ui/viewer/state.js +8 -0
  52. package/dist/src/ui/viewer/state.js.map +1 -1
  53. package/dist/src/ui/viewer/styles-inline.d.ts +1 -1
  54. package/dist/src/ui/viewer/styles-inline.d.ts.map +1 -1
  55. package/dist/src/ui/viewer/styles-inline.js +165 -0
  56. package/dist/src/ui/viewer/styles-inline.js.map +1 -1
  57. package/dist/src/wasm/udoc.d.ts +86 -140
  58. package/dist/src/wasm/udoc.js +134 -246
  59. package/dist/src/wasm/udoc_bg.wasm +0 -0
  60. package/dist/src/wasm/udoc_bg.wasm.d.ts +47 -50
  61. package/dist/src/worker/WorkerClient.d.ts +14 -44
  62. package/dist/src/worker/WorkerClient.d.ts.map +1 -1
  63. package/dist/src/worker/WorkerClient.js +14 -53
  64. package/dist/src/worker/WorkerClient.js.map +1 -1
  65. package/dist/src/worker/index.d.ts +1 -1
  66. package/dist/src/worker/index.d.ts.map +1 -1
  67. package/dist/src/worker/worker-inline.js +1 -1
  68. package/dist/src/worker/worker.d.ts +13 -47
  69. package/dist/src/worker/worker.d.ts.map +1 -1
  70. package/dist/src/worker/worker.js +173 -303
  71. package/dist/src/worker/worker.js.map +1 -1
  72. package/package.json +1 -1
@@ -85,6 +85,7 @@ export const inlineStyles = `.udoc-viewer-root {
85
85
  --udoc-scrollbar-thumb: rgba(0, 0, 0, 0.3);
86
86
  --udoc-scrollbar-thumb-hover: rgba(0, 0, 0, 0.5);
87
87
 
88
+ position: relative;
88
89
  display: flex;
89
90
  flex-direction: column;
90
91
  height: 100%;
@@ -1888,6 +1889,170 @@ export const inlineStyles = `.udoc-viewer-root {
1888
1889
  height: 20px;
1889
1890
  }
1890
1891
 
1892
+ /* ===== Print Dialog ===== */
1893
+ .udoc-viewer-root .udoc-print-overlay {
1894
+ position: absolute;
1895
+ top: 0;
1896
+ left: 0;
1897
+ right: 0;
1898
+ bottom: 0;
1899
+ background: var(--udoc-bg-overlay);
1900
+ display: flex;
1901
+ align-items: center;
1902
+ justify-content: center;
1903
+ z-index: 210;
1904
+ }
1905
+
1906
+ .udoc-viewer-root .udoc-print-dialog {
1907
+ background: var(--udoc-bg-surface);
1908
+ border-radius: 12px;
1909
+ box-shadow: var(--udoc-shadow-dialog);
1910
+ padding: 24px;
1911
+ max-width: 400px;
1912
+ width: 90%;
1913
+ }
1914
+
1915
+ .udoc-viewer-root .udoc-print-title {
1916
+ margin: 0 0 20px 0;
1917
+ font-size: 18px;
1918
+ font-weight: 600;
1919
+ color: var(--udoc-text-heading);
1920
+ }
1921
+
1922
+ .udoc-viewer-root .udoc-print-section {
1923
+ margin-bottom: 16px;
1924
+ }
1925
+
1926
+ .udoc-viewer-root .udoc-print-section-label {
1927
+ display: block;
1928
+ font-size: 13px;
1929
+ font-weight: 600;
1930
+ color: var(--udoc-text-label);
1931
+ margin-bottom: 8px;
1932
+ text-transform: uppercase;
1933
+ letter-spacing: 0.5px;
1934
+ }
1935
+
1936
+ .udoc-viewer-root .udoc-print-radios {
1937
+ display: flex;
1938
+ flex-direction: column;
1939
+ gap: 8px;
1940
+ }
1941
+
1942
+ .udoc-viewer-root .udoc-print-radio {
1943
+ display: flex;
1944
+ align-items: center;
1945
+ gap: 8px;
1946
+ font-size: 14px;
1947
+ color: var(--udoc-text-heading);
1948
+ cursor: pointer;
1949
+ padding: 4px 0;
1950
+ }
1951
+
1952
+ .udoc-viewer-root .udoc-print-radio input[type="radio"] {
1953
+ accent-color: var(--udoc-primary);
1954
+ margin: 0;
1955
+ cursor: pointer;
1956
+ }
1957
+
1958
+ .udoc-viewer-root .udoc-print-input {
1959
+ padding: 4px 8px;
1960
+ border: 1px solid var(--udoc-border);
1961
+ border-radius: 6px;
1962
+ background: var(--udoc-bg-input);
1963
+ color: var(--udoc-text-heading);
1964
+ font-size: 14px;
1965
+ outline: none;
1966
+ transition:
1967
+ border-color 0.15s,
1968
+ box-shadow 0.15s;
1969
+ }
1970
+
1971
+ .udoc-viewer-root .udoc-print-input:focus {
1972
+ border-color: var(--udoc-primary);
1973
+ box-shadow: 0 0 0 3px var(--udoc-primary-active-bg);
1974
+ }
1975
+
1976
+ .udoc-viewer-root .udoc-print-input:disabled {
1977
+ opacity: 0.4;
1978
+ cursor: not-allowed;
1979
+ }
1980
+
1981
+ .udoc-viewer-root .udoc-print-input[type="number"] {
1982
+ width: 64px;
1983
+ }
1984
+
1985
+ .udoc-viewer-root .udoc-print-input[type="text"] {
1986
+ flex: 1;
1987
+ min-width: 0;
1988
+ }
1989
+
1990
+ .udoc-viewer-root .udoc-print-select {
1991
+ width: 100%;
1992
+ padding: 8px 12px;
1993
+ border: 1px solid var(--udoc-border);
1994
+ border-radius: 8px;
1995
+ background: var(--udoc-bg-input);
1996
+ color: var(--udoc-text-heading);
1997
+ font-size: 14px;
1998
+ outline: none;
1999
+ cursor: pointer;
2000
+ transition:
2001
+ border-color 0.15s,
2002
+ box-shadow 0.15s;
2003
+ }
2004
+
2005
+ .udoc-viewer-root .udoc-print-select:focus {
2006
+ border-color: var(--udoc-primary);
2007
+ box-shadow: 0 0 0 3px var(--udoc-primary-active-bg);
2008
+ }
2009
+
2010
+ .udoc-viewer-root .udoc-print-error {
2011
+ margin: 0 0 12px 0;
2012
+ padding: 8px 12px;
2013
+ background: var(--udoc-error-bg);
2014
+ border: 1px solid var(--udoc-error-border);
2015
+ border-radius: 6px;
2016
+ font-size: 13px;
2017
+ color: var(--udoc-error-text);
2018
+ display: none;
2019
+ }
2020
+
2021
+ .udoc-viewer-root .udoc-print-actions {
2022
+ display: flex;
2023
+ justify-content: flex-end;
2024
+ gap: 8px;
2025
+ margin-top: 20px;
2026
+ }
2027
+
2028
+ .udoc-viewer-root .udoc-print-btn {
2029
+ padding: 8px 20px;
2030
+ border: none;
2031
+ border-radius: 8px;
2032
+ font-size: 14px;
2033
+ font-weight: 500;
2034
+ cursor: pointer;
2035
+ transition: background 0.15s;
2036
+ }
2037
+
2038
+ .udoc-viewer-root .udoc-print-btn--cancel {
2039
+ background: transparent;
2040
+ color: var(--udoc-text-label);
2041
+ }
2042
+
2043
+ .udoc-viewer-root .udoc-print-btn--cancel:hover {
2044
+ background: var(--udoc-bg-hover);
2045
+ }
2046
+
2047
+ .udoc-viewer-root .udoc-print-btn--print {
2048
+ background: var(--udoc-primary);
2049
+ color: var(--udoc-text-on-primary);
2050
+ }
2051
+
2052
+ .udoc-viewer-root .udoc-print-btn--print:hover {
2053
+ background: var(--udoc-primary-hover);
2054
+ }
2055
+
1891
2056
  /* ===== Loading Overlay ===== */
1892
2057
  .udoc-viewer-root .udoc-loading-overlay {
1893
2058
  position: absolute;
@@ -1 +1 @@
1
- {"version":3,"file":"styles-inline.js","sourceRoot":"","sources":["../../../../src/ui/viewer/styles-inline.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2rE3B,CAAC"}
1
+ {"version":3,"file":"styles-inline.js","sourceRoot":"","sources":["../../../../src/ui/viewer/styles-inline.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAg2E3B,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
3
 
4
- export class UDoc {
4
+ export class Wasm {
5
5
  free(): void;
6
6
  [Symbol.dispose](): void;
7
7
  /**
@@ -77,12 +77,11 @@ export class UDoc {
77
77
  *
78
78
  * # Arguments
79
79
  * * `license_key` - The license key string
80
- * * `domain` - The current domain (from window.location.hostname)
81
80
  *
82
81
  * # Returns
83
82
  * License validation result as JSON.
84
83
  */
85
- set_license(license_key: string, domain: string): any;
84
+ set_license(license_key: string): any;
86
85
  /**
87
86
  * Authenticate with a password to unlock an encrypted document.
88
87
  *
@@ -135,21 +134,6 @@ export class UDoc {
135
134
  * - `transform`: Combined transform matrix
136
135
  */
137
136
  get_page_text(id: string, page_index: number): any;
138
- /**
139
- * Register a font from raw bytes.
140
- *
141
- * The JS viewer calls `getRequiredFonts` to discover which fonts a
142
- * document needs, fetches them from any source (CDN, local storage, etc.),
143
- * and passes the raw bytes here so the engine can use them during rendering.
144
- *
145
- * # Arguments
146
- * * `id` - Document ID
147
- * * `typeface` - The typeface name (must match what's in the document)
148
- * * `bold` - Whether this is a bold variant
149
- * * `italic` - Whether this is an italic variant
150
- * * `bytes` - Raw font file data (TTF, OTF, WOFF, or WOFF2)
151
- */
152
- registerFont(id: string, typeface: string, bold: boolean, italic: boolean, bytes: Uint8Array): void;
153
137
  /**
154
138
  * Get current license status.
155
139
  */
@@ -174,6 +158,34 @@ export class UDoc {
174
158
  * Decompressed PDF data as Uint8Array
175
159
  */
176
160
  pdf_decompress(doc_id: string): Uint8Array;
161
+ /**
162
+ * Register font URLs.
163
+ *
164
+ * The caller provides a list of all available fonts with their download
165
+ * URLs. During layout, when the engine needs a font, it is fetched from
166
+ * the URL, parsed, and cached for reuse.
167
+ *
168
+ * Call this before loading documents. Registered fonts are automatically
169
+ * applied to every document loaded afterward. URL fonts are always
170
+ * resolved before Google Fonts.
171
+ *
172
+ * # Arguments
173
+ * * `fonts` - Array of font entries: `[{ typeface: "Roboto", bold: false, italic: false, url: "https://..." }, ...]`
174
+ *
175
+ * # Example (JavaScript)
176
+ * ```js
177
+ * // Register available fonts before loading documents
178
+ * udoc.registerFonts([
179
+ * { typeface: "Roboto", bold: false, italic: false, url: "https://cdn.example.com/Roboto-Regular.woff2" },
180
+ * { typeface: "Roboto", bold: true, italic: false, url: "https://cdn.example.com/Roboto-Bold.woff2" },
181
+ * ]);
182
+ *
183
+ * // Load and render - fonts are fetched on demand during layout
184
+ * const docId = udoc.loadPptx(pptxBytes);
185
+ * const pixels = udoc.renderPageToRgba(docId, 0, 800, 600);
186
+ * ```
187
+ */
188
+ registerFonts(fonts: any): void;
177
189
  /**
178
190
  * Get the format of a loaded document.
179
191
  *
@@ -212,43 +224,6 @@ export class UDoc {
212
224
  * - `data`: Raw font data as Uint8Array
213
225
  */
214
226
  pdf_extract_fonts(doc_id: string): any;
215
- /**
216
- * Get all external fonts required by the document.
217
- *
218
- * This scans all text content in loaded pages and returns font descriptors
219
- * for fonts that are:
220
- * - Not embedded in the document
221
- * - Not standard PDF fonts (Helvetica, Times, Courier, etc.)
222
- *
223
- * Use this to determine which fonts need to be fetched from external sources
224
- * (e.g., Google Fonts) before rendering.
225
- *
226
- * Note: This only scans pages that have been loaded. Call appropriate loading
227
- * methods first to ensure the pages you need are scanned.
228
- *
229
- * # Arguments
230
- * * `id` - Document ID
231
- *
232
- * # Returns
233
- * Array of font descriptors: `[{ typeface: "Roboto", bold: false, italic: false }, ...]`
234
- *
235
- * # Example (JavaScript)
236
- * ```js
237
- * // Load document
238
- * const docId = udoc.loadPdf(pdfBytes);
239
- *
240
- * // Load all pages to scan for fonts
241
- * const pageCount = udoc.pageCount(docId);
242
- * for (let i = 0; i < pageCount; i++) {
243
- * udoc.renderPageToRgba(docId, i, 1, 1); // Minimal render to load page
244
- * }
245
- *
246
- * // Get required fonts
247
- * const fonts = udoc.getRequiredFonts(docId);
248
- * // fonts: [{ typeface: "Roboto", bold: false, italic: false }, ...]
249
- * ```
250
- */
251
- getRequiredFonts(id: string): any;
252
227
  /**
253
228
  * Extract all embedded images from a PDF document.
254
229
  *
@@ -279,43 +254,28 @@ export class UDoc {
279
254
  */
280
255
  render_page_to_png(id: string, page_index: number, width: number, height: number): Uint8Array;
281
256
  /**
282
- * Enable Google Fonts for a document.
257
+ * Enable Google Fonts.
283
258
  *
284
259
  * When enabled, fonts that are not embedded in the document will be
285
- * automatically fetched from Google Fonts during rendering.
260
+ * automatically fetched from Google Fonts during rendering. Google Fonts
261
+ * are resolved after any URL fonts registered via `registerFonts`.
286
262
  *
287
- * # Arguments
288
- * * `id` - Document ID
263
+ * Call this before loading documents.
289
264
  *
290
265
  * # Example (JavaScript)
291
266
  * ```js
292
- * // Enable Google Fonts for the document
293
- * udoc.enableGoogleFonts(docId);
294
- *
295
- * // Now render pages - fonts will be fetched automatically
267
+ * udoc.enableGoogleFonts();
268
+ * const docId = udoc.loadPptx(pptxBytes);
296
269
  * const pixels = udoc.renderPageToRgba(docId, 0, 800, 600);
297
270
  * ```
298
271
  */
299
- enableGoogleFonts(id: string): void;
272
+ enableGoogleFonts(): void;
300
273
  /**
301
274
  * Get all annotations in the document, grouped by page index.
302
275
  *
303
276
  * Returns an object mapping page indices (as strings) to arrays of annotations.
304
277
  */
305
278
  get_all_annotations(id: string): any;
306
- /**
307
- * Check if a font is registered for a document.
308
- *
309
- * # Arguments
310
- * * `id` - Document ID
311
- * * `typeface` - The typeface name
312
- * * `bold` - Whether to check for bold variant
313
- * * `italic` - Whether to check for italic variant
314
- *
315
- * # Returns
316
- * `true` if the font is registered, `false` otherwise.
317
- */
318
- hasRegisteredFont(id: string, typeface: string, bold: boolean, italic: boolean): boolean;
319
279
  /**
320
280
  * Render a page to raw RGBA pixel data.
321
281
  *
@@ -366,16 +326,6 @@ export class UDoc {
366
326
  * Returns an empty array for documents without visibility groups.
367
327
  */
368
328
  get_visibility_groups(id: string): any;
369
- /**
370
- * Get the number of fonts registered for a document.
371
- *
372
- * # Arguments
373
- * * `id` - Document ID
374
- *
375
- * # Returns
376
- * The number of registered fonts.
377
- */
378
- registeredFontCount(id: string): number;
379
329
  /**
380
330
  * Set the visibility of a specific visibility group.
381
331
  *
@@ -442,10 +392,9 @@ export class UDoc {
442
392
  */
443
393
  load_pdf(bytes: Uint8Array): string;
444
394
  /**
445
- * Get the raw PDF bytes of a document.
395
+ * Get the raw file bytes of a document.
446
396
  *
447
- * Returns the original PDF file data for the document.
448
- * Returns an error if the document is not a PDF.
397
+ * Returns the original file data for the document.
449
398
  */
450
399
  get_bytes(id: string): Uint8Array;
451
400
  /**
@@ -498,56 +447,53 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl
498
447
 
499
448
  export interface InitOutput {
500
449
  readonly memory: WebAssembly.Memory;
501
- readonly __wbg_udoc_free: (a: number, b: number) => void;
502
- readonly udoc_all_page_info: (a: number, b: number, c: number, d: number) => void;
503
- readonly udoc_authenticate: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
504
- readonly udoc_document_count: (a: number) => number;
505
- readonly udoc_document_format: (a: number, b: number, c: number, d: number) => void;
506
- readonly udoc_document_ids: (a: number, b: number) => void;
507
- readonly udoc_enableGoogleFonts: (a: number, b: number, c: number, d: number) => void;
508
- readonly udoc_getRequiredFonts: (a: number, b: number, c: number, d: number) => void;
509
- readonly udoc_get_all_annotations: (a: number, b: number, c: number, d: number) => void;
510
- readonly udoc_get_bytes: (a: number, b: number, c: number, d: number) => void;
511
- readonly udoc_get_limit: (a: number, b: number, c: number, d: bigint) => bigint;
512
- readonly udoc_get_outline: (a: number, b: number, c: number, d: number) => void;
513
- readonly udoc_get_page_annotations: (a: number, b: number, c: number, d: number, e: number) => void;
514
- readonly udoc_get_page_text: (a: number, b: number, c: number, d: number, e: number) => void;
515
- readonly udoc_get_visibility_groups: (a: number, b: number, c: number, d: number) => void;
516
- readonly udoc_hasRegisteredFont: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => void;
517
- readonly udoc_has_document: (a: number, b: number, c: number) => number;
518
- readonly udoc_has_feature: (a: number, b: number, c: number) => number;
519
- readonly udoc_has_gpu: (a: number) => number;
520
- readonly udoc_init_gpu: (a: number) => number;
521
- readonly udoc_license_status: (a: number, b: number) => void;
522
- readonly udoc_load: (a: number, b: number, c: number, d: number) => void;
523
- readonly udoc_load_docx: (a: number, b: number, c: number, d: number) => void;
524
- readonly udoc_load_image: (a: number, b: number, c: number, d: number) => void;
525
- readonly udoc_load_pdf: (a: number, b: number, c: number, d: number) => void;
526
- readonly udoc_load_pptx: (a: number, b: number, c: number, d: number) => void;
527
- readonly udoc_load_xlsx: (a: number, b: number, c: number, d: number) => void;
528
- readonly udoc_needs_password: (a: number, b: number, c: number, d: number) => void;
529
- readonly udoc_new: () => number;
530
- readonly udoc_page_count: (a: number, b: number, c: number, d: number) => void;
531
- readonly udoc_page_info: (a: number, b: number, c: number, d: number, e: number) => void;
532
- readonly udoc_page_layout: (a: number, b: number, c: number, d: number) => void;
533
- readonly udoc_pdf_compose: (a: number, b: number, c: number, d: number) => void;
534
- readonly udoc_pdf_compress: (a: number, b: number, c: number, d: number) => void;
535
- readonly udoc_pdf_decompress: (a: number, b: number, c: number, d: number) => void;
536
- readonly udoc_pdf_extract_fonts: (a: number, b: number, c: number, d: number) => void;
537
- readonly udoc_pdf_extract_images: (a: number, b: number, c: number, d: number, e: number) => void;
538
- readonly udoc_pdf_split_by_outline: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
539
- readonly udoc_registerFont: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => void;
540
- readonly udoc_registeredFontCount: (a: number, b: number, c: number, d: number) => void;
541
- readonly udoc_remove_document: (a: number, b: number, c: number) => number;
542
- readonly udoc_render_page_gpu: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
543
- readonly udoc_render_page_to_png: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
544
- readonly udoc_render_page_to_rgba: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
545
- readonly udoc_set_license: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
546
- readonly udoc_set_visibility_group_visible: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
547
- readonly udoc_setup: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
548
- readonly __wasm_bindgen_func_elem_2525: (a: number, b: number, c: number) => void;
549
- readonly __wasm_bindgen_func_elem_2509: (a: number, b: number) => void;
550
- readonly __wasm_bindgen_func_elem_16253: (a: number, b: number, c: number, d: number) => void;
450
+ readonly __wbg_wasm_free: (a: number, b: number) => void;
451
+ readonly wasm_all_page_info: (a: number, b: number, c: number, d: number) => void;
452
+ readonly wasm_authenticate: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
453
+ readonly wasm_document_count: (a: number) => number;
454
+ readonly wasm_document_format: (a: number, b: number, c: number, d: number) => void;
455
+ readonly wasm_document_ids: (a: number, b: number) => void;
456
+ readonly wasm_enableGoogleFonts: (a: number) => void;
457
+ readonly wasm_get_all_annotations: (a: number, b: number, c: number, d: number) => void;
458
+ readonly wasm_get_bytes: (a: number, b: number, c: number, d: number) => void;
459
+ readonly wasm_get_limit: (a: number, b: number, c: number, d: bigint) => bigint;
460
+ readonly wasm_get_outline: (a: number, b: number, c: number, d: number) => void;
461
+ readonly wasm_get_page_annotations: (a: number, b: number, c: number, d: number, e: number) => void;
462
+ readonly wasm_get_page_text: (a: number, b: number, c: number, d: number, e: number) => void;
463
+ readonly wasm_get_visibility_groups: (a: number, b: number, c: number, d: number) => void;
464
+ readonly wasm_has_document: (a: number, b: number, c: number) => number;
465
+ readonly wasm_has_feature: (a: number, b: number, c: number) => number;
466
+ readonly wasm_has_gpu: (a: number) => number;
467
+ readonly wasm_init_gpu: (a: number) => number;
468
+ readonly wasm_license_status: (a: number, b: number) => void;
469
+ readonly wasm_load: (a: number, b: number, c: number, d: number) => void;
470
+ readonly wasm_load_docx: (a: number, b: number, c: number, d: number) => void;
471
+ readonly wasm_load_image: (a: number, b: number, c: number, d: number) => void;
472
+ readonly wasm_load_pdf: (a: number, b: number, c: number, d: number) => void;
473
+ readonly wasm_load_pptx: (a: number, b: number, c: number, d: number) => void;
474
+ readonly wasm_load_xlsx: (a: number, b: number, c: number, d: number) => void;
475
+ readonly wasm_needs_password: (a: number, b: number, c: number, d: number) => void;
476
+ readonly wasm_new: () => number;
477
+ readonly wasm_page_count: (a: number, b: number, c: number, d: number) => void;
478
+ readonly wasm_page_info: (a: number, b: number, c: number, d: number, e: number) => void;
479
+ readonly wasm_page_layout: (a: number, b: number, c: number, d: number) => void;
480
+ readonly wasm_pdf_compose: (a: number, b: number, c: number, d: number) => void;
481
+ readonly wasm_pdf_compress: (a: number, b: number, c: number, d: number) => void;
482
+ readonly wasm_pdf_decompress: (a: number, b: number, c: number, d: number) => void;
483
+ readonly wasm_pdf_extract_fonts: (a: number, b: number, c: number, d: number) => void;
484
+ readonly wasm_pdf_extract_images: (a: number, b: number, c: number, d: number, e: number) => void;
485
+ readonly wasm_pdf_split_by_outline: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
486
+ readonly wasm_registerFonts: (a: number, b: number, c: number) => void;
487
+ readonly wasm_remove_document: (a: number, b: number, c: number) => number;
488
+ readonly wasm_render_page_gpu: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
489
+ readonly wasm_render_page_to_png: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
490
+ readonly wasm_render_page_to_rgba: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
491
+ readonly wasm_set_license: (a: number, b: number, c: number, d: number) => void;
492
+ readonly wasm_set_visibility_group_visible: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
493
+ readonly wasm_setup: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
494
+ readonly __wasm_bindgen_func_elem_2543: (a: number, b: number, c: number) => void;
495
+ readonly __wasm_bindgen_func_elem_2527: (a: number, b: number) => void;
496
+ readonly __wasm_bindgen_func_elem_16275: (a: number, b: number, c: number, d: number) => void;
551
497
  readonly __wbindgen_export: (a: number, b: number) => number;
552
498
  readonly __wbindgen_export2: (a: number, b: number, c: number, d: number) => number;
553
499
  readonly __wbindgen_export3: (a: number) => void;