@embedpdf/engines 1.0.11 → 1.0.12
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/engine-B7CS6Qyp.cjs +2 -0
- package/dist/engine-B7CS6Qyp.cjs.map +1 -0
- package/dist/engine-M0_XZhss.js +5043 -0
- package/dist/engine-M0_XZhss.js.map +1 -0
- package/dist/index.cjs +1 -5846
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -1613
- package/dist/index.js +339 -5824
- package/dist/index.js.map +1 -1
- package/dist/lib/converters/index.cjs +2 -0
- package/dist/lib/converters/index.cjs.map +1 -0
- package/dist/{converters.d.ts → lib/converters/index.d.ts} +7 -10
- package/dist/lib/converters/index.js +80 -0
- package/dist/{converters.cjs.map → lib/converters/index.js.map} +1 -1
- package/dist/lib/index.d.ts +7 -0
- package/dist/lib/mock/index.d.ts +25 -0
- package/dist/lib/pdfium/cache.d.ts +62 -0
- package/dist/{pdfium-direct-engine.d.ts → lib/pdfium/engine.d.ts} +73 -8
- package/dist/lib/pdfium/helper.d.ts +21 -0
- package/dist/lib/pdfium/index.cjs +2 -0
- package/dist/lib/pdfium/index.cjs.map +1 -0
- package/dist/lib/pdfium/index.d.ts +3 -0
- package/dist/lib/pdfium/index.js +13 -0
- package/dist/lib/pdfium/index.js.map +1 -0
- package/dist/lib/pdfium/runner.d.ts +16 -0
- package/dist/lib/pdfium/web/direct-engine.cjs +2 -0
- package/dist/lib/pdfium/web/direct-engine.cjs.map +1 -0
- package/dist/lib/pdfium/web/direct-engine.d.ts +3 -0
- package/dist/lib/pdfium/web/direct-engine.js +12 -0
- package/dist/lib/pdfium/web/direct-engine.js.map +1 -0
- package/dist/lib/pdfium/web/worker-engine.cjs +2 -0
- package/dist/lib/pdfium/web/worker-engine.cjs.map +1 -0
- package/dist/lib/pdfium/web/worker-engine.d.ts +7 -0
- package/dist/lib/pdfium/web/worker-engine.js +15 -0
- package/dist/lib/pdfium/web/worker-engine.js.map +1 -0
- package/dist/lib/pdfium/worker.d.ts +1 -0
- package/dist/lib/pdfium-engine.d.ts +1 -0
- package/dist/lib/webworker/engine.cjs +2 -0
- package/dist/lib/webworker/engine.cjs.map +1 -0
- package/dist/{worker.d.ts → lib/webworker/engine.d.ts} +4 -34
- package/dist/lib/webworker/engine.js +887 -0
- package/dist/lib/webworker/engine.js.map +1 -0
- package/dist/lib/webworker/index.d.ts +2 -0
- package/dist/lib/webworker/runner.d.ts +128 -0
- package/dist/lib/webworker-engine.d.ts +1 -0
- package/dist/preact/adapter.d.ts +1 -0
- package/dist/preact/index.cjs +2 -0
- package/dist/preact/index.cjs.map +1 -0
- package/dist/preact/index.d.ts +1 -0
- package/dist/preact/index.js +37 -0
- package/dist/preact/index.js.map +1 -0
- package/dist/react/adapter.d.ts +1 -0
- package/dist/react/index.cjs +2 -0
- package/dist/react/index.cjs.map +1 -0
- package/dist/react/index.d.ts +1 -0
- package/dist/react/index.js +37 -0
- package/dist/react/index.js.map +1 -0
- package/dist/runner-BcS-WEof.cjs +2 -0
- package/dist/runner-BcS-WEof.cjs.map +1 -0
- package/dist/runner-DUp_7Uu_.js +269 -0
- package/dist/runner-DUp_7Uu_.js.map +1 -0
- package/dist/shared-preact/hooks/index.d.ts +1 -0
- package/dist/{preact.d.ts → shared-preact/hooks/use-pdfium-engine.d.ts} +3 -5
- package/dist/shared-preact/index.d.ts +1 -0
- package/dist/shared-react/hooks/index.d.ts +1 -0
- package/dist/{react.d.ts → shared-react/hooks/use-pdfium-engine.d.ts} +3 -5
- package/dist/shared-react/index.d.ts +1 -0
- package/dist/vue/hooks/index.d.ts +1 -0
- package/dist/vue/hooks/use-pdfium-engine.d.ts +18 -0
- package/dist/vue/index.cjs +2 -0
- package/dist/vue/index.cjs.map +1 -0
- package/dist/vue/index.d.ts +1 -0
- package/dist/vue/index.js +39 -0
- package/dist/vue/index.js.map +1 -0
- package/package.json +41 -41
- package/dist/converters.cjs +0 -139
- package/dist/converters.js +0 -133
- package/dist/converters.js.map +0 -1
- package/dist/pdfium-direct-engine.cjs +0 -4400
- package/dist/pdfium-direct-engine.cjs.map +0 -1
- package/dist/pdfium-direct-engine.js +0 -4398
- package/dist/pdfium-direct-engine.js.map +0 -1
- package/dist/pdfium-worker-engine.cjs +0 -851
- package/dist/pdfium-worker-engine.cjs.map +0 -1
- package/dist/pdfium-worker-engine.d.ts +0 -314
- package/dist/pdfium-worker-engine.js +0 -849
- package/dist/pdfium-worker-engine.js.map +0 -1
- package/dist/pdfium.cjs +0 -4667
- package/dist/pdfium.cjs.map +0 -1
- package/dist/pdfium.d.ts +0 -1311
- package/dist/pdfium.js +0 -4661
- package/dist/pdfium.js.map +0 -1
- package/dist/preact.cjs +0 -41
- package/dist/preact.cjs.map +0 -1
- package/dist/preact.js +0 -39
- package/dist/preact.js.map +0 -1
- package/dist/react.cjs +0 -41
- package/dist/react.cjs.map +0 -1
- package/dist/react.js +0 -39
- package/dist/react.js.map +0 -1
- package/dist/worker.cjs +0 -839
- package/dist/worker.cjs.map +0 -1
- package/dist/worker.js +0 -836
- package/dist/worker.js.map +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});exports.browserImageDataToBlobConverter=(e,t="image/webp")=>{if("undefined"==typeof OffscreenCanvas)throw new Error("OffscreenCanvas is not available in this environment. This converter is intended for browser use only. Please use createNodeImageDataToBlobConverter() or createNodeCanvasImageDataToBlobConverter() for Node.js.");const a=new OffscreenCanvas(e.width,e.height);return a.getContext("2d").putImageData(e,0,0),a.convertToBlob({type:t})},exports.createCustomImageDataToBlobConverter=function(e){return async(t,a="image/webp")=>{const r=await e(t);return new Blob([r],{type:a})}},exports.createCustomImageDataToBufferConverter=function(e){return async(t,a="image/webp")=>await e(t,a)},exports.createNodeCanvasImageDataToBlobConverter=function(e){return async(t,a="image/webp")=>{const{width:r,height:o}=t,n=e(r,o);let i;switch(n.getContext("2d").putImageData(t,0,0),a){case"image/webp":i=n.toBuffer("image/webp");break;case"image/png":i=n.toBuffer("image/png");break;case"image/jpeg":i=n.toBuffer("image/jpeg");break;default:throw new Error(`Unsupported image type: ${a}`)}return i}},exports.createNodeImageDataToBufferConverter=function(e){return async(t,a="image/webp")=>{const{width:r,height:o,data:n}=t;let i,s=e(Buffer.from(n),{raw:{width:r,height:o,channels:4}});switch(a){case"image/webp":i=await s.webp().toBuffer();break;case"image/png":i=await s.png().toBuffer();break;case"image/jpeg":i=await s.flatten({background:{r:255,g:255,b:255}}).jpeg().toBuffer();break;default:throw new Error(`Unsupported image type: ${a}`)}return i}};
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../src/lib/converters/index.ts"],"sourcesContent":["/**\n * Function type for converting ImageData to Blob\n * In browser: uses OffscreenCanvas\n * In Node.js: can use Sharp or other image processing libraries\n */\nexport type ImageDataConverter<T = Blob> = (\n imageData: ImageData,\n imageType?: ImageConversionTypes,\n) => Promise<T>;\n\nexport type ImageConversionTypes = 'image/webp' | 'image/png' | 'image/jpeg';\n/**\n * Browser implementation using OffscreenCanvas\n * This is the default implementation used in browser environments\n */\nexport const browserImageDataToBlobConverter: ImageDataConverter = (\n imageData: ImageData,\n imageType: ImageConversionTypes = 'image/webp',\n): Promise<Blob> => {\n // Check if we're in a browser environment\n if (typeof OffscreenCanvas === 'undefined') {\n throw new Error(\n 'OffscreenCanvas is not available in this environment. ' +\n 'This converter is intended for browser use only. ' +\n 'Please use createNodeImageDataToBlobConverter() or createNodeCanvasImageDataToBlobConverter() for Node.js.',\n );\n }\n\n const off = new OffscreenCanvas(imageData.width, imageData.height);\n off.getContext('2d')!.putImageData(imageData, 0, 0);\n return off.convertToBlob({ type: imageType });\n};\n\n/**\n * Node.js implementation using Sharp\n * This requires the 'sharp' package to be installed\n *\n * @example\n * ```typescript\n * import sharp from 'sharp';\n * import { createNodeImageDataToBufferConverter } from '@embedpdf/engines/pdfium/image-converters';\n *\n * const converter = createNodeImageDataToBufferConverter(sharp);\n * const engine = new PdfiumEngine(pdfiumModule, logger, converter);\n * ```\n */\nexport function createNodeImageDataToBufferConverter(\n sharp: any, // Using 'any' to avoid requiring sharp as a dependency\n): ImageDataConverter<Buffer> {\n return async (\n imageData: ImageData,\n imageType: ImageConversionTypes = 'image/webp',\n ): Promise<Buffer> => {\n const { width, height, data } = imageData;\n\n // Convert ImageData to Sharp format\n // ImageData uses RGBA format, Sharp expects the same\n let sharpInstance = sharp(Buffer.from(data), {\n raw: {\n width,\n height,\n channels: 4, // RGBA\n },\n });\n\n // Apply the appropriate format conversion based on imageType\n let buffer: Buffer;\n switch (imageType) {\n case 'image/webp':\n buffer = await sharpInstance.webp().toBuffer();\n break;\n case 'image/png':\n buffer = await sharpInstance.png().toBuffer();\n break;\n case 'image/jpeg':\n // JPEG doesn't support transparency, so we need to composite onto a white background\n buffer = await sharpInstance\n .flatten({ background: { r: 255, g: 255, b: 255 } }) // Remove alpha channel with white background\n .jpeg()\n .toBuffer();\n break;\n default:\n throw new Error(`Unsupported image type: ${imageType}`);\n }\n\n return buffer;\n };\n}\n\n/**\n * Alternative Node.js implementation using canvas (node-canvas)\n * This requires the 'canvas' package to be installed\n *\n * @example\n * ```typescript\n * import { createCanvas } from 'canvas';\n * import { createNodeCanvasImageDataToBlobConverter } from '@embedpdf/engines/pdfium/image-converters';\n *\n * const converter = createNodeCanvasImageDataToBlobConverter(createCanvas, 'image/png');\n * const engine = new PdfiumEngine(pdfiumModule, logger, converter);\n * ```\n */\nexport function createNodeCanvasImageDataToBlobConverter(\n createCanvas: any, // Using 'any' to avoid requiring canvas as a dependency\n): ImageDataConverter<Buffer> {\n return async (\n imageData: ImageData,\n imageType: ImageConversionTypes = 'image/webp',\n ): Promise<Buffer> => {\n const { width, height } = imageData;\n\n // Create a canvas and put the image data\n const canvas = createCanvas(width, height);\n const ctx = canvas.getContext('2d');\n ctx.putImageData(imageData, 0, 0);\n\n // Convert to buffer and create blob based on the requested type\n let buffer: Buffer;\n switch (imageType) {\n case 'image/webp':\n buffer = canvas.toBuffer('image/webp');\n break;\n case 'image/png':\n buffer = canvas.toBuffer('image/png');\n break;\n case 'image/jpeg':\n buffer = canvas.toBuffer('image/jpeg');\n break;\n default:\n throw new Error(`Unsupported image type: ${imageType}`);\n }\n\n return buffer;\n };\n}\n\n/**\n * Generic Node.js implementation that works with any image processing library\n * that can handle raw RGBA data\n *\n * @example\n * ```typescript\n * const converter = createCustomImageDataToBlobConverter(async (imageData) => {\n * // Your custom image processing logic here\n * // Return a Buffer that will be wrapped in a Blob\n * return processImageWithYourLibrary(imageData);\n * });\n * ```\n */\nexport function createCustomImageDataToBlobConverter(\n processor: (imageData: ImageData) => Promise<Buffer>,\n): ImageDataConverter {\n return async (\n imageData: ImageData,\n imageType: ImageConversionTypes = 'image/webp',\n ): Promise<Blob> => {\n const buffer = await processor(imageData);\n return new Blob([buffer], { type: imageType });\n };\n}\n\n/**\n * Create a custom converter that returns a Buffer\n * @param processor - function to process the image data\n * @param imageType - image type\n * @returns ImageDataToBlobConverter<Buffer>\n */\nexport function createCustomImageDataToBufferConverter(\n processor: (imageData: ImageData, imageType: ImageConversionTypes) => Promise<Buffer>,\n): ImageDataConverter<Buffer> {\n return async (\n imageData: ImageData,\n imageType: ImageConversionTypes = 'image/webp',\n ): Promise<Buffer> => {\n return await processor(imageData, imageType);\n };\n}\n"],"names":["imageData","imageType","OffscreenCanvas","Error","off","width","height","getContext","putImageData","convertToBlob","type","processor","async","buffer","Blob","createCanvas","canvas","toBuffer","sharp","data","sharpInstance","Buffer","from","raw","channels","webp","png","flatten","background","r","g","b","jpeg"],"mappings":"wHAemE,CACjEA,EACAC,EAAkC,gBAG9B,GAA2B,oBAApBC,gBACT,MAAM,IAAIC,MACR,qNAMJ,MAAMC,EAAM,IAAIF,gBAAgBF,EAAUK,MAAOL,EAAUM,QAE3D,OADAF,EAAIG,WAAW,MAAOC,aAAaR,EAAW,EAAG,GAC1CI,EAAIK,cAAc,CAAEC,KAAMT,GAAW,+CAuHvC,SACLU,GAEO,OAAAC,MACLZ,EACAC,EAAkC,gBAE5B,MAAAY,QAAeF,EAAUX,GACxB,OAAA,IAAIc,KAAK,CAACD,GAAS,CAAEH,KAAMT,GAAW,CAEjD,iDAQO,SACLU,GAEO,OAAAC,MACLZ,EACAC,EAAkC,qBAErBU,EAAUX,EAAWC,EAEtC,mDA1EO,SACLc,GAEO,OAAAH,MACLZ,EACAC,EAAkC,gBAE5B,MAAAI,MAAEA,EAAOC,OAAAA,GAAWN,EAGpBgB,EAASD,EAAaV,EAAOC,GAK/B,IAAAO,EACJ,OALYG,EAAOT,WAAW,MAC1BC,aAAaR,EAAW,EAAG,GAIvBC,GACN,IAAK,aACMY,EAAAG,EAAOC,SAAS,cACzB,MACF,IAAK,YACMJ,EAAAG,EAAOC,SAAS,aACzB,MACF,IAAK,aACMJ,EAAAG,EAAOC,SAAS,cACzB,MACF,QACE,MAAM,IAAId,MAAM,2BAA2BF,KAGxC,OAAAY,CAAA,CAEX,+CAxFO,SACLK,GAEO,OAAAN,MACLZ,EACAC,EAAkC,gBAElC,MAAMI,MAAEA,EAAAC,OAAOA,EAAQa,KAAAA,GAASnB,EAIhC,IASIa,EATAO,EAAgBF,EAAMG,OAAOC,KAAKH,GAAO,CAC3CI,IAAK,CACHlB,QACAC,SACAkB,SAAU,KAMd,OAAQvB,GACN,IAAK,aACHY,QAAeO,EAAcK,OAAOR,WACpC,MACF,IAAK,YACHJ,QAAeO,EAAcM,MAAMT,WACnC,MACF,IAAK,aAEHJ,QAAeO,EACZO,QAAQ,CAAEC,WAAY,CAAEC,EAAG,IAAKC,EAAG,IAAKC,EAAG,OAC3CC,OACAf,WACH,MACF,QACE,MAAM,IAAId,MAAM,2BAA2BF,KAGxC,OAAAY,CAAA,CAEX"}
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
* In browser: uses OffscreenCanvas
|
|
4
4
|
* In Node.js: can use Sharp or other image processing libraries
|
|
5
5
|
*/
|
|
6
|
-
type ImageDataConverter<T = Blob> = (imageData: ImageData, imageType?: ImageConversionTypes) => Promise<T>;
|
|
7
|
-
type ImageConversionTypes = 'image/webp' | 'image/png' | 'image/jpeg';
|
|
6
|
+
export type ImageDataConverter<T = Blob> = (imageData: ImageData, imageType?: ImageConversionTypes) => Promise<T>;
|
|
7
|
+
export type ImageConversionTypes = 'image/webp' | 'image/png' | 'image/jpeg';
|
|
8
8
|
/**
|
|
9
9
|
* Browser implementation using OffscreenCanvas
|
|
10
10
|
* This is the default implementation used in browser environments
|
|
11
11
|
*/
|
|
12
|
-
declare const browserImageDataToBlobConverter: ImageDataConverter;
|
|
12
|
+
export declare const browserImageDataToBlobConverter: ImageDataConverter;
|
|
13
13
|
/**
|
|
14
14
|
* Node.js implementation using Sharp
|
|
15
15
|
* This requires the 'sharp' package to be installed
|
|
@@ -23,7 +23,7 @@ declare const browserImageDataToBlobConverter: ImageDataConverter;
|
|
|
23
23
|
* const engine = new PdfiumEngine(pdfiumModule, logger, converter);
|
|
24
24
|
* ```
|
|
25
25
|
*/
|
|
26
|
-
declare function createNodeImageDataToBufferConverter(sharp: any): ImageDataConverter<Buffer>;
|
|
26
|
+
export declare function createNodeImageDataToBufferConverter(sharp: any): ImageDataConverter<Buffer>;
|
|
27
27
|
/**
|
|
28
28
|
* Alternative Node.js implementation using canvas (node-canvas)
|
|
29
29
|
* This requires the 'canvas' package to be installed
|
|
@@ -37,7 +37,7 @@ declare function createNodeImageDataToBufferConverter(sharp: any): ImageDataConv
|
|
|
37
37
|
* const engine = new PdfiumEngine(pdfiumModule, logger, converter);
|
|
38
38
|
* ```
|
|
39
39
|
*/
|
|
40
|
-
declare function createNodeCanvasImageDataToBlobConverter(createCanvas: any): ImageDataConverter<Buffer>;
|
|
40
|
+
export declare function createNodeCanvasImageDataToBlobConverter(createCanvas: any): ImageDataConverter<Buffer>;
|
|
41
41
|
/**
|
|
42
42
|
* Generic Node.js implementation that works with any image processing library
|
|
43
43
|
* that can handle raw RGBA data
|
|
@@ -51,14 +51,11 @@ declare function createNodeCanvasImageDataToBlobConverter(createCanvas: any): Im
|
|
|
51
51
|
* });
|
|
52
52
|
* ```
|
|
53
53
|
*/
|
|
54
|
-
declare function createCustomImageDataToBlobConverter(processor: (imageData: ImageData) => Promise<Buffer>): ImageDataConverter;
|
|
54
|
+
export declare function createCustomImageDataToBlobConverter(processor: (imageData: ImageData) => Promise<Buffer>): ImageDataConverter;
|
|
55
55
|
/**
|
|
56
56
|
* Create a custom converter that returns a Buffer
|
|
57
57
|
* @param processor - function to process the image data
|
|
58
58
|
* @param imageType - image type
|
|
59
59
|
* @returns ImageDataToBlobConverter<Buffer>
|
|
60
60
|
*/
|
|
61
|
-
declare function createCustomImageDataToBufferConverter(processor: (imageData: ImageData, imageType: ImageConversionTypes) => Promise<Buffer>): ImageDataConverter<Buffer>;
|
|
62
|
-
|
|
63
|
-
export { browserImageDataToBlobConverter, createCustomImageDataToBlobConverter, createCustomImageDataToBufferConverter, createNodeCanvasImageDataToBlobConverter, createNodeImageDataToBufferConverter };
|
|
64
|
-
export type { ImageConversionTypes, ImageDataConverter };
|
|
61
|
+
export declare function createCustomImageDataToBufferConverter(processor: (imageData: ImageData, imageType: ImageConversionTypes) => Promise<Buffer>): ImageDataConverter<Buffer>;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
const browserImageDataToBlobConverter = (imageData, imageType = "image/webp") => {
|
|
2
|
+
if (typeof OffscreenCanvas === "undefined") {
|
|
3
|
+
throw new Error(
|
|
4
|
+
"OffscreenCanvas is not available in this environment. This converter is intended for browser use only. Please use createNodeImageDataToBlobConverter() or createNodeCanvasImageDataToBlobConverter() for Node.js."
|
|
5
|
+
);
|
|
6
|
+
}
|
|
7
|
+
const off = new OffscreenCanvas(imageData.width, imageData.height);
|
|
8
|
+
off.getContext("2d").putImageData(imageData, 0, 0);
|
|
9
|
+
return off.convertToBlob({ type: imageType });
|
|
10
|
+
};
|
|
11
|
+
function createNodeImageDataToBufferConverter(sharp) {
|
|
12
|
+
return async (imageData, imageType = "image/webp") => {
|
|
13
|
+
const { width, height, data } = imageData;
|
|
14
|
+
let sharpInstance = sharp(Buffer.from(data), {
|
|
15
|
+
raw: {
|
|
16
|
+
width,
|
|
17
|
+
height,
|
|
18
|
+
channels: 4
|
|
19
|
+
// RGBA
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
let buffer;
|
|
23
|
+
switch (imageType) {
|
|
24
|
+
case "image/webp":
|
|
25
|
+
buffer = await sharpInstance.webp().toBuffer();
|
|
26
|
+
break;
|
|
27
|
+
case "image/png":
|
|
28
|
+
buffer = await sharpInstance.png().toBuffer();
|
|
29
|
+
break;
|
|
30
|
+
case "image/jpeg":
|
|
31
|
+
buffer = await sharpInstance.flatten({ background: { r: 255, g: 255, b: 255 } }).jpeg().toBuffer();
|
|
32
|
+
break;
|
|
33
|
+
default:
|
|
34
|
+
throw new Error(`Unsupported image type: ${imageType}`);
|
|
35
|
+
}
|
|
36
|
+
return buffer;
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
function createNodeCanvasImageDataToBlobConverter(createCanvas) {
|
|
40
|
+
return async (imageData, imageType = "image/webp") => {
|
|
41
|
+
const { width, height } = imageData;
|
|
42
|
+
const canvas = createCanvas(width, height);
|
|
43
|
+
const ctx = canvas.getContext("2d");
|
|
44
|
+
ctx.putImageData(imageData, 0, 0);
|
|
45
|
+
let buffer;
|
|
46
|
+
switch (imageType) {
|
|
47
|
+
case "image/webp":
|
|
48
|
+
buffer = canvas.toBuffer("image/webp");
|
|
49
|
+
break;
|
|
50
|
+
case "image/png":
|
|
51
|
+
buffer = canvas.toBuffer("image/png");
|
|
52
|
+
break;
|
|
53
|
+
case "image/jpeg":
|
|
54
|
+
buffer = canvas.toBuffer("image/jpeg");
|
|
55
|
+
break;
|
|
56
|
+
default:
|
|
57
|
+
throw new Error(`Unsupported image type: ${imageType}`);
|
|
58
|
+
}
|
|
59
|
+
return buffer;
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
function createCustomImageDataToBlobConverter(processor) {
|
|
63
|
+
return async (imageData, imageType = "image/webp") => {
|
|
64
|
+
const buffer = await processor(imageData);
|
|
65
|
+
return new Blob([buffer], { type: imageType });
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
function createCustomImageDataToBufferConverter(processor) {
|
|
69
|
+
return async (imageData, imageType = "image/webp") => {
|
|
70
|
+
return await processor(imageData, imageType);
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
export {
|
|
74
|
+
browserImageDataToBlobConverter,
|
|
75
|
+
createCustomImageDataToBlobConverter,
|
|
76
|
+
createCustomImageDataToBufferConverter,
|
|
77
|
+
createNodeCanvasImageDataToBlobConverter,
|
|
78
|
+
createNodeImageDataToBufferConverter
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/lib/converters/index.ts"],"sourcesContent":["/**\n * Function type for converting ImageData to Blob\n * In browser: uses OffscreenCanvas\n * In Node.js: can use Sharp or other image processing libraries\n */\nexport type ImageDataConverter<T = Blob> = (\n imageData: ImageData,\n imageType?: ImageConversionTypes,\n) => Promise<T>;\n\nexport type ImageConversionTypes = 'image/webp' | 'image/png' | 'image/jpeg';\n/**\n * Browser implementation using OffscreenCanvas\n * This is the default implementation used in browser environments\n */\nexport const browserImageDataToBlobConverter: ImageDataConverter = (\n imageData: ImageData,\n imageType: ImageConversionTypes = 'image/webp',\n): Promise<Blob> => {\n // Check if we're in a browser environment\n if (typeof OffscreenCanvas === 'undefined') {\n throw new Error(\n 'OffscreenCanvas is not available in this environment. ' +\n 'This converter is intended for browser use only. ' +\n 'Please use createNodeImageDataToBlobConverter() or createNodeCanvasImageDataToBlobConverter() for Node.js.',\n );\n }\n\n const off = new OffscreenCanvas(imageData.width, imageData.height);\n off.getContext('2d')!.putImageData(imageData, 0, 0);\n return off.convertToBlob({ type: imageType });\n};\n\n/**\n * Node.js implementation using Sharp\n * This requires the 'sharp' package to be installed\n *\n * @example\n * ```typescript\n * import sharp from 'sharp';\n * import { createNodeImageDataToBufferConverter } from '@embedpdf/engines/pdfium/image-converters';\n *\n * const converter = createNodeImageDataToBufferConverter(sharp);\n * const engine = new PdfiumEngine(pdfiumModule, logger, converter);\n * ```\n */\nexport function createNodeImageDataToBufferConverter(\n sharp: any, // Using 'any' to avoid requiring sharp as a dependency\n): ImageDataConverter<Buffer> {\n return async (\n imageData: ImageData,\n imageType: ImageConversionTypes = 'image/webp',\n ): Promise<Buffer> => {\n const { width, height, data } = imageData;\n\n // Convert ImageData to Sharp format\n // ImageData uses RGBA format, Sharp expects the same\n let sharpInstance = sharp(Buffer.from(data), {\n raw: {\n width,\n height,\n channels: 4, // RGBA\n },\n });\n\n // Apply the appropriate format conversion based on imageType\n let buffer: Buffer;\n switch (imageType) {\n case 'image/webp':\n buffer = await sharpInstance.webp().toBuffer();\n break;\n case 'image/png':\n buffer = await sharpInstance.png().toBuffer();\n break;\n case 'image/jpeg':\n // JPEG doesn't support transparency, so we need to composite onto a white background\n buffer = await sharpInstance\n .flatten({ background: { r: 255, g: 255, b: 255 } }) // Remove alpha channel with white background\n .jpeg()\n .toBuffer();\n break;\n default:\n throw new Error(`Unsupported image type: ${imageType}`);\n }\n\n return buffer;\n };\n}\n\n/**\n * Alternative Node.js implementation using canvas (node-canvas)\n * This requires the 'canvas' package to be installed\n *\n * @example\n * ```typescript\n * import { createCanvas } from 'canvas';\n * import { createNodeCanvasImageDataToBlobConverter } from '@embedpdf/engines/pdfium/image-converters';\n *\n * const converter = createNodeCanvasImageDataToBlobConverter(createCanvas, 'image/png');\n * const engine = new PdfiumEngine(pdfiumModule, logger, converter);\n * ```\n */\nexport function createNodeCanvasImageDataToBlobConverter(\n createCanvas: any, // Using 'any' to avoid requiring canvas as a dependency\n): ImageDataConverter<Buffer> {\n return async (\n imageData: ImageData,\n imageType: ImageConversionTypes = 'image/webp',\n ): Promise<Buffer> => {\n const { width, height } = imageData;\n\n // Create a canvas and put the image data\n const canvas = createCanvas(width, height);\n const ctx = canvas.getContext('2d');\n ctx.putImageData(imageData, 0, 0);\n\n // Convert to buffer and create blob based on the requested type\n let buffer: Buffer;\n switch (imageType) {\n case 'image/webp':\n buffer = canvas.toBuffer('image/webp');\n break;\n case 'image/png':\n buffer = canvas.toBuffer('image/png');\n break;\n case 'image/jpeg':\n buffer = canvas.toBuffer('image/jpeg');\n break;\n default:\n throw new Error(`Unsupported image type: ${imageType}`);\n }\n\n return buffer;\n };\n}\n\n/**\n * Generic Node.js implementation that works with any image processing library\n * that can handle raw RGBA data\n *\n * @example\n * ```typescript\n * const converter = createCustomImageDataToBlobConverter(async (imageData) => {\n * // Your custom image processing logic here\n * // Return a Buffer that will be wrapped in a Blob\n * return processImageWithYourLibrary(imageData);\n * });\n * ```\n */\nexport function createCustomImageDataToBlobConverter(\n processor: (imageData: ImageData) => Promise<Buffer>,\n): ImageDataConverter {\n return async (\n imageData: ImageData,\n imageType: ImageConversionTypes = 'image/webp',\n ): Promise<Blob> => {\n const buffer = await processor(imageData);\n return new Blob([buffer], { type: imageType });\n };\n}\n\n/**\n * Create a custom converter that returns a Buffer\n * @param processor - function to process the image data\n * @param imageType - image type\n * @returns ImageDataToBlobConverter<Buffer>\n */\nexport function createCustomImageDataToBufferConverter(\n processor: (imageData: ImageData, imageType: ImageConversionTypes) => Promise<Buffer>,\n): ImageDataConverter<Buffer> {\n return async (\n imageData: ImageData,\n imageType: ImageConversionTypes = 'image/webp',\n ): Promise<Buffer> => {\n return await processor(imageData, imageType);\n };\n}\n"],"names":[],"mappings":"AAeO,MAAM,kCAAsD,CACjE,WACA,YAAkC,iBAChB;AAEd,MAAA,OAAO,oBAAoB,aAAa;AAC1C,UAAM,IAAI;AAAA,MACR;AAAA,IAGF;AAAA,EAAA;AAGF,QAAM,MAAM,IAAI,gBAAgB,UAAU,OAAO,UAAU,MAAM;AACjE,MAAI,WAAW,IAAI,EAAG,aAAa,WAAW,GAAG,CAAC;AAClD,SAAO,IAAI,cAAc,EAAE,MAAM,WAAW;AAC9C;AAeO,SAAS,qCACd,OAC4B;AACrB,SAAA,OACL,WACA,YAAkC,iBACd;AACpB,UAAM,EAAE,OAAO,QAAQ,KAAS,IAAA;AAIhC,QAAI,gBAAgB,MAAM,OAAO,KAAK,IAAI,GAAG;AAAA,MAC3C,KAAK;AAAA,QACH;AAAA,QACA;AAAA,QACA,UAAU;AAAA;AAAA,MAAA;AAAA,IACZ,CACD;AAGG,QAAA;AACJ,YAAQ,WAAW;AAAA,MACjB,KAAK;AACH,iBAAS,MAAM,cAAc,KAAK,EAAE,SAAS;AAC7C;AAAA,MACF,KAAK;AACH,iBAAS,MAAM,cAAc,IAAI,EAAE,SAAS;AAC5C;AAAA,MACF,KAAK;AAEH,iBAAS,MAAM,cACZ,QAAQ,EAAE,YAAY,EAAE,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,EAAG,CAAA,EAClD,OACA,SAAS;AACZ;AAAA,MACF;AACE,cAAM,IAAI,MAAM,2BAA2B,SAAS,EAAE;AAAA,IAAA;AAGnD,WAAA;AAAA,EACT;AACF;AAeO,SAAS,yCACd,cAC4B;AACrB,SAAA,OACL,WACA,YAAkC,iBACd;AACd,UAAA,EAAE,OAAO,OAAA,IAAW;AAGpB,UAAA,SAAS,aAAa,OAAO,MAAM;AACnC,UAAA,MAAM,OAAO,WAAW,IAAI;AAC9B,QAAA,aAAa,WAAW,GAAG,CAAC;AAG5B,QAAA;AACJ,YAAQ,WAAW;AAAA,MACjB,KAAK;AACM,iBAAA,OAAO,SAAS,YAAY;AACrC;AAAA,MACF,KAAK;AACM,iBAAA,OAAO,SAAS,WAAW;AACpC;AAAA,MACF,KAAK;AACM,iBAAA,OAAO,SAAS,YAAY;AACrC;AAAA,MACF;AACE,cAAM,IAAI,MAAM,2BAA2B,SAAS,EAAE;AAAA,IAAA;AAGnD,WAAA;AAAA,EACT;AACF;AAeO,SAAS,qCACd,WACoB;AACb,SAAA,OACL,WACA,YAAkC,iBAChB;AACZ,UAAA,SAAS,MAAM,UAAU,SAAS;AACjC,WAAA,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,MAAM,WAAW;AAAA,EAC/C;AACF;AAQO,SAAS,uCACd,WAC4B;AACrB,SAAA,OACL,WACA,YAAkC,iBACd;AACb,WAAA,MAAM,UAAU,WAAW,SAAS;AAAA,EAC7C;AACF;"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { PdfDocumentObject, PdfEngine, PdfFile } from '@embedpdf/models';
|
|
2
|
+
/**
|
|
3
|
+
* Create mock of pdf engine
|
|
4
|
+
* @param partialEngine - partial configuration of engine
|
|
5
|
+
* @returns - mock of pdf engine
|
|
6
|
+
*
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export declare function createMockPdfEngine(partialEngine?: Partial<PdfEngine>): PdfEngine;
|
|
10
|
+
/**
|
|
11
|
+
* Create mock of pdf document
|
|
12
|
+
* @param doc - partial configuration of document
|
|
13
|
+
* @returns mock of pdf document
|
|
14
|
+
*
|
|
15
|
+
* @public
|
|
16
|
+
*/
|
|
17
|
+
export declare function createMockPdfDocument(doc?: Partial<PdfDocumentObject>): PdfDocumentObject;
|
|
18
|
+
/**
|
|
19
|
+
* Create mock of pdf file
|
|
20
|
+
* @param file - partial configuration of file
|
|
21
|
+
* @returns mock of pdf file
|
|
22
|
+
*
|
|
23
|
+
* @public
|
|
24
|
+
*/
|
|
25
|
+
export declare function createMockPdfFile(file?: Partial<PdfFile>): PdfFile;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { WrappedPdfiumModule } from '@embedpdf/pdfium';
|
|
2
|
+
export declare class PdfCache {
|
|
3
|
+
private readonly pdfium;
|
|
4
|
+
private readonly docs;
|
|
5
|
+
constructor(pdfium: WrappedPdfiumModule);
|
|
6
|
+
/** Open (or re-use) a document */
|
|
7
|
+
setDocument(id: string, filePtr: number, docPtr: number): void;
|
|
8
|
+
/** Retrieve the DocumentContext for a given PdfDocumentObject */
|
|
9
|
+
getContext(docId: string): DocumentContext | undefined;
|
|
10
|
+
/** Close & fully release a document and all its pages */
|
|
11
|
+
closeDocument(docId: string): boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare class DocumentContext {
|
|
14
|
+
readonly filePtr: number;
|
|
15
|
+
readonly docPtr: number;
|
|
16
|
+
private readonly pageCache;
|
|
17
|
+
constructor(filePtr: number, docPtr: number, pdfium: WrappedPdfiumModule);
|
|
18
|
+
/** Main accessor for pages */
|
|
19
|
+
acquirePage(pageIdx: number): PageContext;
|
|
20
|
+
/** Tear down all pages + this document */
|
|
21
|
+
dispose(): void;
|
|
22
|
+
}
|
|
23
|
+
export declare class PageCache {
|
|
24
|
+
readonly pdf: WrappedPdfiumModule;
|
|
25
|
+
private readonly docPtr;
|
|
26
|
+
private readonly cache;
|
|
27
|
+
constructor(pdf: WrappedPdfiumModule, docPtr: number);
|
|
28
|
+
acquire(pageIdx: number): PageContext;
|
|
29
|
+
forceReleaseAll(): void;
|
|
30
|
+
}
|
|
31
|
+
export declare class PageContext {
|
|
32
|
+
private readonly pdf;
|
|
33
|
+
readonly docPtr: number;
|
|
34
|
+
readonly pageIdx: number;
|
|
35
|
+
readonly pagePtr: number;
|
|
36
|
+
private readonly onFinalDispose;
|
|
37
|
+
private refCount;
|
|
38
|
+
private expiryTimer?;
|
|
39
|
+
private disposed;
|
|
40
|
+
private textPagePtr?;
|
|
41
|
+
private formInfoPtr?;
|
|
42
|
+
private formHandle?;
|
|
43
|
+
constructor(pdf: WrappedPdfiumModule, docPtr: number, pageIdx: number, pagePtr: number, onFinalDispose: () => void);
|
|
44
|
+
/** Called by PageCache.acquire() */
|
|
45
|
+
bumpRefCount(): void;
|
|
46
|
+
/** Called by PageCache.acquire() */
|
|
47
|
+
clearExpiryTimer(): void;
|
|
48
|
+
/** Called by PageCache.release() internally */
|
|
49
|
+
release(): void;
|
|
50
|
+
/** Tear down _all_ sub-pointers & the page. */
|
|
51
|
+
disposeImmediate(): void;
|
|
52
|
+
/** Always safe: opens (once) and returns the text-page ptr. */
|
|
53
|
+
getTextPage(): number;
|
|
54
|
+
/** Always safe: opens (once) and returns the form-fill handle. */
|
|
55
|
+
getFormHandle(): number;
|
|
56
|
+
/**
|
|
57
|
+
* Safely execute `fn` with an annotation pointer.
|
|
58
|
+
* Pointer is ALWAYS closed afterwards.
|
|
59
|
+
*/
|
|
60
|
+
withAnnotation<T>(annotIdx: number, fn: (annotPtr: number) => T): T;
|
|
61
|
+
private ensureAlive;
|
|
62
|
+
}
|
|
@@ -1,16 +1,71 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PdfAnnotationObject, PdfTextRectObject, PdfWidgetAnnoObject, Logger, SearchTarget, MatchFlag, PdfBookmarkObject, PdfDocumentObject, PdfEngine, PdfPageObject, Rotation, Rect, PdfAttachmentObject, PdfSignatureObject, PdfRenderOptions, PdfInkAnnoObject, Position, PdfSquigglyAnnoObject, PdfStrikeOutAnnoObject, PdfUnderlineAnnoObject, PdfFile, AppearanceMode, PdfHighlightAnnoObject, PdfStampAnnoObjectContents, FormFieldValue, PdfPageFlattenFlag, PdfPageFlattenResult, PdfTask, PdfFileLoader, SearchAllPagesResult, PdfUrlOptions, PdfFileUrl, Task, PdfErrorReason, PdfGlyphObject, PdfPageGeometry, PdfImage, ImageConversionTypes, PdfAnnotationObjectBase, PageTextSlice, WebAlphaColor } from '@embedpdf/models';
|
|
2
2
|
import { WrappedPdfiumModule } from '@embedpdf/pdfium';
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Format of bitmap
|
|
5
|
+
*/
|
|
6
|
+
export declare enum BitmapFormat {
|
|
7
|
+
Bitmap_Gray = 1,
|
|
8
|
+
Bitmap_BGR = 2,
|
|
9
|
+
Bitmap_BGRx = 3,
|
|
10
|
+
Bitmap_BGRA = 4
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Pdf rendering flag
|
|
14
|
+
*/
|
|
15
|
+
export declare enum RenderFlag {
|
|
16
|
+
ANNOT = 1,// Set if annotations are to be rendered.
|
|
17
|
+
LCD_TEXT = 2,// Set if using text rendering optimized for LCD display.
|
|
18
|
+
NO_NATIVETEXT = 4,// Don't use the native text output available on some platforms
|
|
19
|
+
GRAYSCALE = 8,// Grayscale output.
|
|
20
|
+
DEBUG_INFO = 128,// Set if you want to get some debug info. Please discuss with Foxit first if you need to collect debug info.
|
|
21
|
+
NO_CATCH = 256,// Set if you don't want to catch exception.
|
|
22
|
+
RENDER_LIMITEDIMAGECACHE = 512,// Limit image cache size.
|
|
23
|
+
RENDER_FORCEHALFTONE = 1024,// Always use halftone for image stretching.
|
|
24
|
+
PRINTING = 2048,// Render for printing.
|
|
25
|
+
REVERSE_BYTE_ORDER = 16
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Context used for searching
|
|
29
|
+
*/
|
|
30
|
+
export interface SearchContext {
|
|
31
|
+
/**
|
|
32
|
+
* search target
|
|
33
|
+
*/
|
|
34
|
+
target: SearchTarget;
|
|
35
|
+
/**
|
|
36
|
+
* current page index
|
|
37
|
+
*/
|
|
38
|
+
currPageIndex: number;
|
|
39
|
+
/**
|
|
40
|
+
* index of text in the current pdf page, -1 means reach the end
|
|
41
|
+
*/
|
|
42
|
+
startIndex: number;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Error code of pdfium library
|
|
46
|
+
*/
|
|
47
|
+
export declare enum PdfiumErrorCode {
|
|
48
|
+
Success = 0,
|
|
49
|
+
Unknown = 1,
|
|
50
|
+
File = 2,
|
|
51
|
+
Format = 3,
|
|
52
|
+
Password = 4,
|
|
53
|
+
Security = 5,
|
|
54
|
+
Page = 6,
|
|
55
|
+
XFALoad = 7,
|
|
56
|
+
XFALayout = 8
|
|
57
|
+
}
|
|
4
58
|
/**
|
|
5
59
|
* Function type for converting ImageData to Blob
|
|
6
60
|
* In browser: uses OffscreenCanvas
|
|
7
61
|
* In Node.js: can use Sharp or other image processing libraries
|
|
8
62
|
*/
|
|
9
|
-
type ImageDataConverter<T = Blob> = (imageData: PdfImage, imageType?: ImageConversionTypes) => Promise<T>;
|
|
63
|
+
export type ImageDataConverter<T = Blob> = (imageData: PdfImage, imageType?: ImageConversionTypes) => Promise<T>;
|
|
64
|
+
export declare const browserImageDataToBlobConverter: ImageDataConverter<Blob>;
|
|
10
65
|
/**
|
|
11
66
|
* Pdf engine that based on pdfium wasm
|
|
12
67
|
*/
|
|
13
|
-
declare class PdfiumEngine<T = Blob> implements PdfEngine<T> {
|
|
68
|
+
export declare class PdfiumEngine<T = Blob> implements PdfEngine<T> {
|
|
14
69
|
private pdfiumModule;
|
|
15
70
|
private logger;
|
|
16
71
|
private imageDataConverter;
|
|
@@ -853,6 +908,20 @@ declare class PdfiumEngine<T = Blob> implements PdfEngine<T> {
|
|
|
853
908
|
* @private
|
|
854
909
|
*/
|
|
855
910
|
private getAnnotString;
|
|
911
|
+
/**
|
|
912
|
+
* Fetches the /IT (Intent) name from an annotation as a UTF-8 JS string.
|
|
913
|
+
*
|
|
914
|
+
* Mirrors getAnnotString(): calls EPDFAnnot_GetIntent twice (length probe + copy).
|
|
915
|
+
* Returns `undefined` if no intent present.
|
|
916
|
+
*/
|
|
917
|
+
private getAnnotIntent;
|
|
918
|
+
/**
|
|
919
|
+
* Returns the rich‑content string stored in the annotation’s `/RC` entry.
|
|
920
|
+
*
|
|
921
|
+
* Works like `getAnnotIntent()`: first probe for length, then copy.
|
|
922
|
+
* `undefined` when the annotation has no rich content.
|
|
923
|
+
*/
|
|
924
|
+
private getAnnotRichContent;
|
|
856
925
|
/**
|
|
857
926
|
* Set a string value (`/T`, `/M`, `/State`, …) to an annotation.
|
|
858
927
|
*
|
|
@@ -1085,7 +1154,3 @@ declare class PdfiumEngine<T = Blob> implements PdfEngine<T> {
|
|
|
1085
1154
|
*/
|
|
1086
1155
|
private searchAllInPage;
|
|
1087
1156
|
}
|
|
1088
|
-
|
|
1089
|
-
declare function createPdfiumEngine(wasmUrl: string, logger?: Logger): Promise<PdfiumEngine>;
|
|
1090
|
-
|
|
1091
|
-
export { createPdfiumEngine };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { PdfiumRuntimeMethods, PdfiumModule } from '@embedpdf/pdfium';
|
|
2
|
+
/**
|
|
3
|
+
* Read string from WASM heap
|
|
4
|
+
* @param wasmModule - pdfium wasm module instance
|
|
5
|
+
* @param readChars - function to read chars
|
|
6
|
+
* @param parseChars - function to parse chars
|
|
7
|
+
* @param defaultLength - default length of chars that needs to read
|
|
8
|
+
* @returns string from the heap
|
|
9
|
+
*
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
export declare function readString(wasmModule: PdfiumRuntimeMethods & PdfiumModule, readChars: (buffer: number, bufferLength: number) => number, parseChars: (buffer: number) => string, defaultLength?: number): string;
|
|
13
|
+
/**
|
|
14
|
+
* Read arraybyffer from WASM heap
|
|
15
|
+
* @param wasmModule - pdfium wasm module instance
|
|
16
|
+
* @param readChars - function to read chars
|
|
17
|
+
* @returns arraybuffer from the heap
|
|
18
|
+
*
|
|
19
|
+
* @public
|
|
20
|
+
*/
|
|
21
|
+
export declare function readArrayBuffer(wasmModule: PdfiumRuntimeMethods & PdfiumModule, readChars: (buffer: number, bufferLength: number) => number): ArrayBuffer;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../../engine-B7CS6Qyp.cjs"),e=require("../../runner-BcS-WEof.cjs");exports.BitmapFormat=r.BitmapFormat,exports.PdfiumEngine=r.PdfiumEngine,exports.PdfiumErrorCode=r.PdfiumErrorCode,exports.RenderFlag=r.RenderFlag,exports.browserImageDataToBlobConverter=r.browserImageDataToBlobConverter,exports.readArrayBuffer=r.readArrayBuffer,exports.readString=r.readString,exports.PdfiumEngineRunner=e.PdfiumEngineRunner;
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { B, a, P, R, b, c, r } from "../../engine-M0_XZhss.js";
|
|
2
|
+
import { P as P2 } from "../../runner-DUp_7Uu_.js";
|
|
3
|
+
export {
|
|
4
|
+
B as BitmapFormat,
|
|
5
|
+
a as PdfiumEngine,
|
|
6
|
+
P2 as PdfiumEngineRunner,
|
|
7
|
+
P as PdfiumErrorCode,
|
|
8
|
+
R as RenderFlag,
|
|
9
|
+
b as browserImageDataToBlobConverter,
|
|
10
|
+
c as readArrayBuffer,
|
|
11
|
+
r as readString
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { EngineRunner } from '../webworker/runner';
|
|
2
|
+
/**
|
|
3
|
+
* EngineRunner for pdfium-based wasm engine
|
|
4
|
+
*/
|
|
5
|
+
export declare class PdfiumEngineRunner extends EngineRunner {
|
|
6
|
+
private wasmBinary;
|
|
7
|
+
/**
|
|
8
|
+
* Create an instance of PdfiumEngineRunner
|
|
9
|
+
* @param wasmBinary - wasm binary that contains the pdfium wasm file
|
|
10
|
+
*/
|
|
11
|
+
constructor(wasmBinary: ArrayBuffer);
|
|
12
|
+
/**
|
|
13
|
+
* Initialize runner
|
|
14
|
+
*/
|
|
15
|
+
prepare(): Promise<void>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@embedpdf/pdfium"),i=require("../../../engine-B7CS6Qyp.cjs");exports.createPdfiumEngine=async function(t,n){const r=await fetch(t),a=await r.arrayBuffer(),u=await e.init({wasmBinary:a});return new i.PdfiumEngine(u,n)};
|
|
2
|
+
//# sourceMappingURL=direct-engine.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"direct-engine.cjs","sources":["../../../../src/lib/pdfium/web/direct-engine.ts"],"sourcesContent":["import { Logger } from '@embedpdf/models';\nimport { init } from '@embedpdf/pdfium';\n\nimport { PdfiumEngine } from '../engine';\n\nexport async function createPdfiumEngine(wasmUrl: string, logger?: Logger): Promise<PdfiumEngine> {\n const response = await fetch(wasmUrl);\n const wasmBinary = await response.arrayBuffer();\n const wasmModule = await init({ wasmBinary });\n return new PdfiumEngine(wasmModule, logger);\n}\n"],"names":["async","wasmUrl","logger","response","fetch","wasmBinary","arrayBuffer","wasmModule","init","PdfiumEngine"],"mappings":"yLAKsBA,eAAmBC,EAAiBC,GAClD,MAAAC,QAAiBC,MAAMH,GACvBI,QAAmBF,EAASG,cAC5BC,QAAmBC,OAAK,CAAEH,eACzB,OAAA,IAAII,EAAAA,aAAaF,EAAYL,EACtC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { init } from "@embedpdf/pdfium";
|
|
2
|
+
import { a as PdfiumEngine } from "../../../engine-M0_XZhss.js";
|
|
3
|
+
async function createPdfiumEngine(wasmUrl, logger) {
|
|
4
|
+
const response = await fetch(wasmUrl);
|
|
5
|
+
const wasmBinary = await response.arrayBuffer();
|
|
6
|
+
const wasmModule = await init({ wasmBinary });
|
|
7
|
+
return new PdfiumEngine(wasmModule, logger);
|
|
8
|
+
}
|
|
9
|
+
export {
|
|
10
|
+
createPdfiumEngine
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=direct-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"direct-engine.js","sources":["../../../../src/lib/pdfium/web/direct-engine.ts"],"sourcesContent":["import { Logger } from '@embedpdf/models';\nimport { init } from '@embedpdf/pdfium';\n\nimport { PdfiumEngine } from '../engine';\n\nexport async function createPdfiumEngine(wasmUrl: string, logger?: Logger): Promise<PdfiumEngine> {\n const response = await fetch(wasmUrl);\n const wasmBinary = await response.arrayBuffer();\n const wasmModule = await init({ wasmBinary });\n return new PdfiumEngine(wasmModule, logger);\n}\n"],"names":[],"mappings":";;AAKsB,eAAA,mBAAmB,SAAiB,QAAwC;AAC1F,QAAA,WAAW,MAAM,MAAM,OAAO;AAC9B,QAAA,aAAa,MAAM,SAAS,YAAY;AAC9C,QAAM,aAAa,MAAM,KAAK,EAAE,YAAY;AACrC,SAAA,IAAI,aAAa,YAAY,MAAM;AAC5C;"}
|