unpdf 1.3.0 → 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/README.md CHANGED
@@ -131,11 +131,16 @@ function getResolvedPDFJS(): Promise<PDFJS>
131
131
 
132
132
  ### `getMeta`
133
133
 
134
+ Extracts metadata from a PDF. If `parseDates` is set to `true`, the date properties will be parsed into `Date` objects.
135
+
134
136
  **Type Declaration**
135
137
 
136
138
  ```ts
137
139
  function getMeta(
138
140
  data: DocumentInitParameters['data'] | PDFDocumentProxy,
141
+ options?: {
142
+ parseDates?: boolean
143
+ },
139
144
  ): Promise<{
140
145
  info: Record<string, any>
141
146
  metadata: Record<string, any>
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 };