unpdf 1.3.1 → 1.3.2

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/dist/index.cjs CHANGED
@@ -145,7 +145,9 @@ async function extractImages$1(data, pageNumber) {
145
145
  continue;
146
146
  }
147
147
  const imageKey = operatorList.argsArray[i][0];
148
- const image = imageKey.startsWith("g_") ? await new Promise((resolve) => page.commonObjs.get(imageKey, (resolvedImage) => resolve(resolvedImage))) : await new Promise((resolve) => page.objs.get(imageKey, (resolvedImage) => resolve(resolvedImage)));
148
+ const image = await new Promise(
149
+ (resolve) => (imageKey.startsWith("g_") ? page.commonObjs : page.objs).get(imageKey, resolve)
150
+ );
149
151
  if (!image || !image.data || !image.width || !image.height) {
150
152
  continue;
151
153
  }
@@ -326,6 +328,7 @@ const extractLinks = async (...args) => {
326
328
  };
327
329
 
328
330
  exports.configureUnPDF = configureUnPDF;
331
+ exports.createIsomorphicCanvasFactory = createIsomorphicCanvasFactory;
329
332
  exports.definePDFJSModule = definePDFJSModule;
330
333
  exports.extractImages = extractImages;
331
334
  exports.extractLinks = extractLinks;
package/dist/index.d.cts CHANGED
@@ -1,8 +1,51 @@
1
1
  import * as _napi_rs_canvas from '@napi-rs/canvas';
2
+ import { Canvas, CanvasRenderingContext2D } from '@napi-rs/canvas';
2
3
  import { DocumentInitParameters, PDFDocumentProxy } from './types/src/display/api';
3
4
  import * as pdfjs_dist_types_src_display_metadata from './types/src/display/metadata';
4
5
  import * as PDFJS from './types/src/pdf';
5
6
 
7
+ interface CanvasFactoryContext {
8
+ canvas?: HTMLCanvasElement | Canvas;
9
+ context?: CanvasRenderingContext2D | CanvasRenderingContext2D;
10
+ }
11
+ /**
12
+ * Derived from the PDF.js project by the Mozilla Foundation.
13
+ * @see https://github.com/mozilla/pdf.js/blob/b8de9a372f9bbf7e33adb362eeae5ef1919dba73/src/display/canvas_factory.js#L18
14
+ * @license Apache-2.0
15
+ */
16
+ declare class BaseCanvasFactory {
17
+ #private;
18
+ constructor({ enableHWA }?: {
19
+ enableHWA?: boolean | undefined;
20
+ });
21
+ create(width: number, height: number): {
22
+ canvas: Canvas | HTMLCanvasElement;
23
+ context: _napi_rs_canvas.SKRSContext2D | globalThis.CanvasRenderingContext2D | null;
24
+ };
25
+ reset({ canvas }: CanvasFactoryContext, width: number, height: number): void;
26
+ destroy(context: CanvasFactoryContext): void;
27
+ _createCanvas(width: number, height: number): HTMLCanvasElement | Canvas;
28
+ }
29
+ /**
30
+ * Derived from the PDF.js project by the Mozilla Foundation.
31
+ * @see https://github.com/mozilla/pdf.js/blob/b8de9a372f9bbf7e33adb362eeae5ef1919dba73/src/display/canvas_factory.js#L18
32
+ * @license Apache-2.0
33
+ */
34
+ declare class DOMCanvasFactory extends BaseCanvasFactory {
35
+ _document: Document;
36
+ constructor({ ownerDocument, enableHWA }?: {
37
+ ownerDocument?: Document | undefined;
38
+ enableHWA?: boolean | undefined;
39
+ });
40
+ _createCanvas(width: number, height: number): HTMLCanvasElement;
41
+ }
42
+ declare class NodeCanvasFactory extends BaseCanvasFactory {
43
+ constructor({ enableHWA }?: {
44
+ enableHWA?: boolean | undefined;
45
+ });
46
+ _createCanvas(width: number, height: number): Canvas;
47
+ }
48
+
6
49
  interface ExtractedImageObject {
7
50
  data: Uint8ClampedArray;
8
51
  width: number;
@@ -43,6 +86,7 @@ declare function renderPageAsImage$1(data: DocumentInitParameters['data'] | PDFD
43
86
  height?: number;
44
87
  toDataURL: true;
45
88
  }): Promise<string>;
89
+ declare function createIsomorphicCanvasFactory(canvasImport?: () => Promise<typeof _napi_rs_canvas>): Promise<typeof DOMCanvasFactory | typeof NodeCanvasFactory>;
46
90
 
47
91
  declare function extractLinks$1(data: DocumentInitParameters['data'] | PDFDocumentProxy): Promise<{
48
92
  totalPages: number;
@@ -105,4 +149,4 @@ declare const extractImages: typeof extractImages$1;
105
149
  declare const renderPageAsImage: typeof renderPageAsImage$1;
106
150
  declare const extractLinks: typeof extractLinks$1;
107
151
 
108
- export { configureUnPDF, definePDFJSModule, extractImages, extractLinks, extractText, getDocumentProxy, getMeta, getResolvedPDFJS, renderPageAsImage, resolvePDFJSImport };
152
+ export { configureUnPDF, createIsomorphicCanvasFactory, definePDFJSModule, extractImages, extractLinks, extractText, getDocumentProxy, getMeta, getResolvedPDFJS, renderPageAsImage, resolvePDFJSImport };
package/dist/index.d.mts CHANGED
@@ -1,8 +1,51 @@
1
1
  import * as _napi_rs_canvas from '@napi-rs/canvas';
2
+ import { Canvas, CanvasRenderingContext2D } from '@napi-rs/canvas';
2
3
  import { DocumentInitParameters, PDFDocumentProxy } from './types/src/display/api';
3
4
  import * as pdfjs_dist_types_src_display_metadata from './types/src/display/metadata';
4
5
  import * as PDFJS from './types/src/pdf';
5
6
 
7
+ interface CanvasFactoryContext {
8
+ canvas?: HTMLCanvasElement | Canvas;
9
+ context?: CanvasRenderingContext2D | CanvasRenderingContext2D;
10
+ }
11
+ /**
12
+ * Derived from the PDF.js project by the Mozilla Foundation.
13
+ * @see https://github.com/mozilla/pdf.js/blob/b8de9a372f9bbf7e33adb362eeae5ef1919dba73/src/display/canvas_factory.js#L18
14
+ * @license Apache-2.0
15
+ */
16
+ declare class BaseCanvasFactory {
17
+ #private;
18
+ constructor({ enableHWA }?: {
19
+ enableHWA?: boolean | undefined;
20
+ });
21
+ create(width: number, height: number): {
22
+ canvas: Canvas | HTMLCanvasElement;
23
+ context: _napi_rs_canvas.SKRSContext2D | globalThis.CanvasRenderingContext2D | null;
24
+ };
25
+ reset({ canvas }: CanvasFactoryContext, width: number, height: number): void;
26
+ destroy(context: CanvasFactoryContext): void;
27
+ _createCanvas(width: number, height: number): HTMLCanvasElement | Canvas;
28
+ }
29
+ /**
30
+ * Derived from the PDF.js project by the Mozilla Foundation.
31
+ * @see https://github.com/mozilla/pdf.js/blob/b8de9a372f9bbf7e33adb362eeae5ef1919dba73/src/display/canvas_factory.js#L18
32
+ * @license Apache-2.0
33
+ */
34
+ declare class DOMCanvasFactory extends BaseCanvasFactory {
35
+ _document: Document;
36
+ constructor({ ownerDocument, enableHWA }?: {
37
+ ownerDocument?: Document | undefined;
38
+ enableHWA?: boolean | undefined;
39
+ });
40
+ _createCanvas(width: number, height: number): HTMLCanvasElement;
41
+ }
42
+ declare class NodeCanvasFactory extends BaseCanvasFactory {
43
+ constructor({ enableHWA }?: {
44
+ enableHWA?: boolean | undefined;
45
+ });
46
+ _createCanvas(width: number, height: number): Canvas;
47
+ }
48
+
6
49
  interface ExtractedImageObject {
7
50
  data: Uint8ClampedArray;
8
51
  width: number;
@@ -43,6 +86,7 @@ declare function renderPageAsImage$1(data: DocumentInitParameters['data'] | PDFD
43
86
  height?: number;
44
87
  toDataURL: true;
45
88
  }): Promise<string>;
89
+ declare function createIsomorphicCanvasFactory(canvasImport?: () => Promise<typeof _napi_rs_canvas>): Promise<typeof DOMCanvasFactory | typeof NodeCanvasFactory>;
46
90
 
47
91
  declare function extractLinks$1(data: DocumentInitParameters['data'] | PDFDocumentProxy): Promise<{
48
92
  totalPages: number;
@@ -105,4 +149,4 @@ declare const extractImages: typeof extractImages$1;
105
149
  declare const renderPageAsImage: typeof renderPageAsImage$1;
106
150
  declare const extractLinks: typeof extractLinks$1;
107
151
 
108
- export { configureUnPDF, definePDFJSModule, extractImages, extractLinks, extractText, getDocumentProxy, getMeta, getResolvedPDFJS, renderPageAsImage, resolvePDFJSImport };
152
+ export { configureUnPDF, createIsomorphicCanvasFactory, definePDFJSModule, extractImages, extractLinks, extractText, getDocumentProxy, getMeta, getResolvedPDFJS, renderPageAsImage, resolvePDFJSImport };
package/dist/index.d.ts CHANGED
@@ -1,8 +1,51 @@
1
1
  import * as _napi_rs_canvas from '@napi-rs/canvas';
2
+ import { Canvas, CanvasRenderingContext2D } from '@napi-rs/canvas';
2
3
  import { DocumentInitParameters, PDFDocumentProxy } from './types/src/display/api';
3
4
  import * as pdfjs_dist_types_src_display_metadata from './types/src/display/metadata';
4
5
  import * as PDFJS from './types/src/pdf';
5
6
 
7
+ interface CanvasFactoryContext {
8
+ canvas?: HTMLCanvasElement | Canvas;
9
+ context?: CanvasRenderingContext2D | CanvasRenderingContext2D;
10
+ }
11
+ /**
12
+ * Derived from the PDF.js project by the Mozilla Foundation.
13
+ * @see https://github.com/mozilla/pdf.js/blob/b8de9a372f9bbf7e33adb362eeae5ef1919dba73/src/display/canvas_factory.js#L18
14
+ * @license Apache-2.0
15
+ */
16
+ declare class BaseCanvasFactory {
17
+ #private;
18
+ constructor({ enableHWA }?: {
19
+ enableHWA?: boolean | undefined;
20
+ });
21
+ create(width: number, height: number): {
22
+ canvas: Canvas | HTMLCanvasElement;
23
+ context: _napi_rs_canvas.SKRSContext2D | globalThis.CanvasRenderingContext2D | null;
24
+ };
25
+ reset({ canvas }: CanvasFactoryContext, width: number, height: number): void;
26
+ destroy(context: CanvasFactoryContext): void;
27
+ _createCanvas(width: number, height: number): HTMLCanvasElement | Canvas;
28
+ }
29
+ /**
30
+ * Derived from the PDF.js project by the Mozilla Foundation.
31
+ * @see https://github.com/mozilla/pdf.js/blob/b8de9a372f9bbf7e33adb362eeae5ef1919dba73/src/display/canvas_factory.js#L18
32
+ * @license Apache-2.0
33
+ */
34
+ declare class DOMCanvasFactory extends BaseCanvasFactory {
35
+ _document: Document;
36
+ constructor({ ownerDocument, enableHWA }?: {
37
+ ownerDocument?: Document | undefined;
38
+ enableHWA?: boolean | undefined;
39
+ });
40
+ _createCanvas(width: number, height: number): HTMLCanvasElement;
41
+ }
42
+ declare class NodeCanvasFactory extends BaseCanvasFactory {
43
+ constructor({ enableHWA }?: {
44
+ enableHWA?: boolean | undefined;
45
+ });
46
+ _createCanvas(width: number, height: number): Canvas;
47
+ }
48
+
6
49
  interface ExtractedImageObject {
7
50
  data: Uint8ClampedArray;
8
51
  width: number;
@@ -43,6 +86,7 @@ declare function renderPageAsImage$1(data: DocumentInitParameters['data'] | PDFD
43
86
  height?: number;
44
87
  toDataURL: true;
45
88
  }): Promise<string>;
89
+ declare function createIsomorphicCanvasFactory(canvasImport?: () => Promise<typeof _napi_rs_canvas>): Promise<typeof DOMCanvasFactory | typeof NodeCanvasFactory>;
46
90
 
47
91
  declare function extractLinks$1(data: DocumentInitParameters['data'] | PDFDocumentProxy): Promise<{
48
92
  totalPages: number;
@@ -105,4 +149,4 @@ declare const extractImages: typeof extractImages$1;
105
149
  declare const renderPageAsImage: typeof renderPageAsImage$1;
106
150
  declare const extractLinks: typeof extractLinks$1;
107
151
 
108
- export { configureUnPDF, definePDFJSModule, extractImages, extractLinks, extractText, getDocumentProxy, getMeta, getResolvedPDFJS, renderPageAsImage, resolvePDFJSImport };
152
+ export { configureUnPDF, createIsomorphicCanvasFactory, definePDFJSModule, extractImages, extractLinks, extractText, getDocumentProxy, getMeta, getResolvedPDFJS, renderPageAsImage, resolvePDFJSImport };
package/dist/index.mjs CHANGED
@@ -143,7 +143,9 @@ async function extractImages$1(data, pageNumber) {
143
143
  continue;
144
144
  }
145
145
  const imageKey = operatorList.argsArray[i][0];
146
- const image = imageKey.startsWith("g_") ? await new Promise((resolve) => page.commonObjs.get(imageKey, (resolvedImage) => resolve(resolvedImage))) : await new Promise((resolve) => page.objs.get(imageKey, (resolvedImage) => resolve(resolvedImage)));
146
+ const image = await new Promise(
147
+ (resolve) => (imageKey.startsWith("g_") ? page.commonObjs : page.objs).get(imageKey, resolve)
148
+ );
147
149
  if (!image || !image.data || !image.width || !image.height) {
148
150
  continue;
149
151
  }
@@ -323,4 +325,4 @@ const extractLinks = async (...args) => {
323
325
  return await extractLinks$1(...args);
324
326
  };
325
327
 
326
- export { configureUnPDF, definePDFJSModule, extractImages, extractLinks, extractText, getDocumentProxy, getMeta, getResolvedPDFJS, renderPageAsImage, resolvePDFJSImport };
328
+ export { configureUnPDF, createIsomorphicCanvasFactory, definePDFJSModule, extractImages, extractLinks, extractText, getDocumentProxy, getMeta, getResolvedPDFJS, renderPageAsImage, resolvePDFJSImport };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "unpdf",
3
3
  "type": "module",
4
- "version": "1.3.1",
4
+ "version": "1.3.2",
5
5
  "packageManager": "pnpm@10.17.0",
6
6
  "description": "PDF extraction and rendering across all JavaScript runtimes",
7
7
  "author": "Johann Schopplich <hello@johannschopplich.com>",