unpdf 1.1.0 → 1.2.1
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 +48 -5
- package/dist/index.cjs +4 -0
- package/dist/index.d.cts +9 -0
- package/dist/index.d.mts +9 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.mjs +4 -0
- package/dist/pdfjs.mjs +1 -1
- package/dist/types/src/display/annotation_layer.d.ts +5 -2
- package/dist/types/src/display/api.d.ts +30 -74
- package/dist/types/src/display/api_utils.d.ts +13 -0
- package/dist/types/src/display/canvas.d.ts +2 -2
- package/dist/types/src/display/display_utils.d.ts +2 -1
- package/dist/types/src/display/draw_layer.d.ts +2 -2
- package/dist/types/src/display/editor/alt_text.d.ts +1 -1
- package/dist/types/src/display/editor/annotation_editor_layer.d.ts +6 -6
- package/dist/types/src/display/editor/color_picker.d.ts +20 -1
- package/dist/types/src/display/editor/comment.d.ts +32 -0
- package/dist/types/src/display/editor/draw.d.ts +8 -8
- package/dist/types/src/display/editor/drawers/freedraw.d.ts +3 -3
- package/dist/types/src/display/editor/drawers/signaturedraw.d.ts +13 -13
- package/dist/types/src/display/editor/editor.d.ts +48 -5
- package/dist/types/src/display/editor/freetext.d.ts +9 -7
- package/dist/types/src/display/editor/highlight.d.ts +6 -3
- package/dist/types/src/display/editor/ink.d.ts +4 -0
- package/dist/types/src/display/editor/signature.d.ts +2 -0
- package/dist/types/src/display/editor/stamp.d.ts +2 -0
- package/dist/types/src/display/editor/toolbar.d.ts +3 -0
- package/dist/types/src/display/editor/tools.d.ts +14 -3
- package/dist/types/src/display/pdf_objects.d.ts +40 -0
- package/dist/types/src/display/text_layer.d.ts +9 -9
- package/dist/types/src/display/worker_options.d.ts +2 -2
- package/dist/types/src/pdf.d.ts +3 -2
- package/dist/types/src/shared/scripting_utils.d.ts +2 -0
- package/dist/types/src/shared/util.d.ts +2 -2
- package/dist/types/web/app_options.d.ts +1 -1
- package/dist/types/web/autolinker.d.ts +2 -2
- package/dist/types/web/base_pdf_page_view.d.ts +0 -1
- package/dist/types/web/event_utils.d.ts +1 -1
- package/dist/types/web/genericl10n.d.ts +5 -5
- package/dist/types/web/l10n.d.ts +2 -2
- package/dist/types/web/pdf_find_controller.d.ts +1 -1
- package/dist/types/web/pdf_page_view.d.ts +9 -7
- package/dist/types/web/pdf_thumbnail_view.d.ts +2 -10
- package/dist/types/web/pdf_viewer.d.ts +42 -1
- package/dist/types/web/text_accessibility.d.ts +1 -1
- package/dist/types/web/text_layer_builder.d.ts +4 -4
- package/package.json +11 -11
package/README.md
CHANGED
|
@@ -18,7 +18,7 @@ This library is also intended as a modern alternative to the unmaintained but st
|
|
|
18
18
|
## PDF.js Compatibility
|
|
19
19
|
|
|
20
20
|
> [!Tip]
|
|
21
|
-
> The serverless PDF.js bundle provided by `unpdf` is built from PDF.js v5.
|
|
21
|
+
> The serverless PDF.js bundle provided by `unpdf` is built from PDF.js v5.4.54.
|
|
22
22
|
|
|
23
23
|
You can use an [official PDF.js build](#official-or-legacy-pdfjs-build) by using the [`definePDFJSModule`](#definepdfjsmodule) method. This is useful if you want to use a specific version or a custom build of PDF.js.
|
|
24
24
|
|
|
@@ -273,7 +273,7 @@ extractPdfImages().catch(console.error)
|
|
|
273
273
|
|
|
274
274
|
### `renderPageAsImage`
|
|
275
275
|
|
|
276
|
-
To render a PDF page as an image, you can use the `renderPageAsImage` method. This method will return an `ArrayBuffer` of the rendered image.
|
|
276
|
+
To render a PDF page as an image, you can use the `renderPageAsImage` method. This method will return an `ArrayBuffer` of the rendered image. It can also return a data URL (`string`) if `toDataURL` option is set to `true`.
|
|
277
277
|
|
|
278
278
|
> [!NOTE]
|
|
279
279
|
> This method will only work in Node.js and browser environments.
|
|
@@ -286,8 +286,8 @@ In order to use this method, make sure to meet the following requirements:
|
|
|
286
286
|
**Type Declaration**
|
|
287
287
|
|
|
288
288
|
```ts
|
|
289
|
-
|
|
290
|
-
data: DocumentInitParameters['data'],
|
|
289
|
+
function renderPageAsImage(
|
|
290
|
+
data: DocumentInitParameters['data'] | PDFDocumentProxy,
|
|
291
291
|
pageNumber: number,
|
|
292
292
|
options?: {
|
|
293
293
|
canvasImport?: () => Promise<typeof import('@napi-rs/canvas')>
|
|
@@ -295,11 +295,24 @@ declare function renderPageAsImage(
|
|
|
295
295
|
scale?: number
|
|
296
296
|
width?: number
|
|
297
297
|
height?: number
|
|
298
|
+
toDataURL?: false
|
|
298
299
|
},
|
|
299
300
|
): Promise<ArrayBuffer>
|
|
301
|
+
function renderPageAsImage(
|
|
302
|
+
data: DocumentInitParameters['data'] | PDFDocumentProxy,
|
|
303
|
+
pageNumber: number,
|
|
304
|
+
options: {
|
|
305
|
+
canvasImport?: () => Promise<typeof import('@napi-rs/canvas')>
|
|
306
|
+
/** @default 1.0 */
|
|
307
|
+
scale?: number
|
|
308
|
+
width?: number
|
|
309
|
+
height?: number
|
|
310
|
+
toDataURL: true
|
|
311
|
+
},
|
|
312
|
+
): Promise<string>
|
|
300
313
|
```
|
|
301
314
|
|
|
302
|
-
**
|
|
315
|
+
**Examples**
|
|
303
316
|
|
|
304
317
|
```ts
|
|
305
318
|
import { definePDFJSModule, renderPageAsImage } from 'unpdf'
|
|
@@ -318,6 +331,36 @@ const result = await renderPageAsImage(buffer, pageNumber, {
|
|
|
318
331
|
await writeFile('dummy-page-1.png', new Uint8Array(result))
|
|
319
332
|
```
|
|
320
333
|
|
|
334
|
+
```ts
|
|
335
|
+
import { definePDFJSModule, renderPageAsImage } from 'unpdf'
|
|
336
|
+
|
|
337
|
+
await definePDFJSModule(() => import('pdfjs-dist'))
|
|
338
|
+
|
|
339
|
+
const pdf = await readFile('./dummy.pdf')
|
|
340
|
+
const buffer = new Uint8Array(pdf)
|
|
341
|
+
const pageNumber = 1
|
|
342
|
+
|
|
343
|
+
const result = await renderPageAsImage(buffer, pageNumber, {
|
|
344
|
+
canvasImport: () => import('@napi-rs/canvas'),
|
|
345
|
+
scale: 2,
|
|
346
|
+
toDataURL: true,
|
|
347
|
+
})
|
|
348
|
+
|
|
349
|
+
const html = `<!DOCTYPE html>
|
|
350
|
+
<html lang="en">
|
|
351
|
+
<head>
|
|
352
|
+
<meta charset="UTF-8">
|
|
353
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
354
|
+
<title>Dummy Page</title>
|
|
355
|
+
</head>
|
|
356
|
+
<body>
|
|
357
|
+
<img alt="Example Page" src="${result}">
|
|
358
|
+
</body>
|
|
359
|
+
</html>`
|
|
360
|
+
|
|
361
|
+
await writeFile('dummy-page-1.html', html)
|
|
362
|
+
```
|
|
363
|
+
|
|
321
364
|
## License
|
|
322
365
|
|
|
323
366
|
[MIT](./LICENSE) License © 2023-PRESENT [Johann Schopplich](https://github.com/johannschopplich)
|
package/dist/index.cjs
CHANGED
|
@@ -182,10 +182,14 @@ async function renderPageAsImage$1(data, pageNumber, options = {}) {
|
|
|
182
182
|
const viewport = page.getViewport({ scale: Math.max(0, scale) });
|
|
183
183
|
const drawingContext = new CanvasFactory().create(viewport.width, viewport.height);
|
|
184
184
|
await page.render({
|
|
185
|
+
canvas: drawingContext.canvas,
|
|
185
186
|
canvasContext: drawingContext.context,
|
|
186
187
|
viewport
|
|
187
188
|
}).promise;
|
|
188
189
|
const dataUrl = drawingContext.canvas.toDataURL();
|
|
190
|
+
if (options.toDataURL) {
|
|
191
|
+
return dataUrl;
|
|
192
|
+
}
|
|
189
193
|
const response = await fetch(dataUrl);
|
|
190
194
|
return await response.arrayBuffer();
|
|
191
195
|
}
|
package/dist/index.d.cts
CHANGED
|
@@ -32,7 +32,16 @@ declare function renderPageAsImage$1(data: DocumentInitParameters['data'] | PDFD
|
|
|
32
32
|
scale?: number;
|
|
33
33
|
width?: number;
|
|
34
34
|
height?: number;
|
|
35
|
+
toDataURL?: false;
|
|
35
36
|
}): Promise<ArrayBuffer>;
|
|
37
|
+
declare function renderPageAsImage$1(data: DocumentInitParameters['data'] | PDFDocumentProxy, pageNumber: number, options: {
|
|
38
|
+
canvasImport?: () => Promise<typeof _napi_rs_canvas>;
|
|
39
|
+
/** @default 1.0 */
|
|
40
|
+
scale?: number;
|
|
41
|
+
width?: number;
|
|
42
|
+
height?: number;
|
|
43
|
+
toDataURL: true;
|
|
44
|
+
}): Promise<string>;
|
|
36
45
|
|
|
37
46
|
declare function extractLinks$1(data: DocumentInitParameters['data'] | PDFDocumentProxy): Promise<{
|
|
38
47
|
totalPages: number;
|
package/dist/index.d.mts
CHANGED
|
@@ -32,7 +32,16 @@ declare function renderPageAsImage$1(data: DocumentInitParameters['data'] | PDFD
|
|
|
32
32
|
scale?: number;
|
|
33
33
|
width?: number;
|
|
34
34
|
height?: number;
|
|
35
|
+
toDataURL?: false;
|
|
35
36
|
}): Promise<ArrayBuffer>;
|
|
37
|
+
declare function renderPageAsImage$1(data: DocumentInitParameters['data'] | PDFDocumentProxy, pageNumber: number, options: {
|
|
38
|
+
canvasImport?: () => Promise<typeof _napi_rs_canvas>;
|
|
39
|
+
/** @default 1.0 */
|
|
40
|
+
scale?: number;
|
|
41
|
+
width?: number;
|
|
42
|
+
height?: number;
|
|
43
|
+
toDataURL: true;
|
|
44
|
+
}): Promise<string>;
|
|
36
45
|
|
|
37
46
|
declare function extractLinks$1(data: DocumentInitParameters['data'] | PDFDocumentProxy): Promise<{
|
|
38
47
|
totalPages: number;
|
package/dist/index.d.ts
CHANGED
|
@@ -32,7 +32,16 @@ declare function renderPageAsImage$1(data: DocumentInitParameters['data'] | PDFD
|
|
|
32
32
|
scale?: number;
|
|
33
33
|
width?: number;
|
|
34
34
|
height?: number;
|
|
35
|
+
toDataURL?: false;
|
|
35
36
|
}): Promise<ArrayBuffer>;
|
|
37
|
+
declare function renderPageAsImage$1(data: DocumentInitParameters['data'] | PDFDocumentProxy, pageNumber: number, options: {
|
|
38
|
+
canvasImport?: () => Promise<typeof _napi_rs_canvas>;
|
|
39
|
+
/** @default 1.0 */
|
|
40
|
+
scale?: number;
|
|
41
|
+
width?: number;
|
|
42
|
+
height?: number;
|
|
43
|
+
toDataURL: true;
|
|
44
|
+
}): Promise<string>;
|
|
36
45
|
|
|
37
46
|
declare function extractLinks$1(data: DocumentInitParameters['data'] | PDFDocumentProxy): Promise<{
|
|
38
47
|
totalPages: number;
|
package/dist/index.mjs
CHANGED
|
@@ -180,10 +180,14 @@ async function renderPageAsImage$1(data, pageNumber, options = {}) {
|
|
|
180
180
|
const viewport = page.getViewport({ scale: Math.max(0, scale) });
|
|
181
181
|
const drawingContext = new CanvasFactory().create(viewport.width, viewport.height);
|
|
182
182
|
await page.render({
|
|
183
|
+
canvas: drawingContext.canvas,
|
|
183
184
|
canvasContext: drawingContext.context,
|
|
184
185
|
viewport
|
|
185
186
|
}).promise;
|
|
186
187
|
const dataUrl = drawingContext.canvas.toDataURL();
|
|
188
|
+
if (options.toDataURL) {
|
|
189
|
+
return dataUrl;
|
|
190
|
+
}
|
|
187
191
|
const response = await fetch(dataUrl);
|
|
188
192
|
return await response.arrayBuffer();
|
|
189
193
|
}
|