unpdf 1.2.0 → 1.2.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 +47 -4
- package/dist/index.cjs +3 -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 +3 -0
- package/dist/pdfjs.mjs +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -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
|
@@ -187,6 +187,9 @@ async function renderPageAsImage$1(data, pageNumber, options = {}) {
|
|
|
187
187
|
viewport
|
|
188
188
|
}).promise;
|
|
189
189
|
const dataUrl = drawingContext.canvas.toDataURL();
|
|
190
|
+
if (options.toDataURL) {
|
|
191
|
+
return dataUrl;
|
|
192
|
+
}
|
|
190
193
|
const response = await fetch(dataUrl);
|
|
191
194
|
return await response.arrayBuffer();
|
|
192
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
|
@@ -185,6 +185,9 @@ async function renderPageAsImage$1(data, pageNumber, options = {}) {
|
|
|
185
185
|
viewport
|
|
186
186
|
}).promise;
|
|
187
187
|
const dataUrl = drawingContext.canvas.toDataURL();
|
|
188
|
+
if (options.toDataURL) {
|
|
189
|
+
return dataUrl;
|
|
190
|
+
}
|
|
188
191
|
const response = await fetch(dataUrl);
|
|
189
192
|
return await response.arrayBuffer();
|
|
190
193
|
}
|