@iqx-limited/quick-pdf 1.0.3 → 1.0.5
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/canvas.d.ts +9 -2
- package/dist/canvas.js +19 -0
- package/dist/canvas.js.map +1 -1
- package/dist/modules/img2pdf.js +1 -1
- package/dist/modules/img2pdf.js.map +1 -1
- package/dist/modules/pdf2img.d.ts +2 -9
- package/dist/modules/pdf2img.js +17 -12
- package/dist/modules/pdf2img.js.map +1 -1
- package/package.json +1 -1
package/dist/canvas.d.ts
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
import { Canvas } from "canvas";
|
|
1
|
+
import { Canvas, CanvasRenderingContext2D } from "canvas";
|
|
2
|
+
type Factory = {
|
|
3
|
+
canvas: Canvas | null;
|
|
4
|
+
context: CanvasRenderingContext2D | null;
|
|
5
|
+
};
|
|
2
6
|
export declare class CanvasFactory {
|
|
3
7
|
create(width: number, height: number, transparent: boolean): {
|
|
4
8
|
canvas: Canvas;
|
|
5
|
-
context:
|
|
9
|
+
context: CanvasRenderingContext2D;
|
|
6
10
|
};
|
|
11
|
+
reset(factory: Factory, width: number, height: number): void;
|
|
12
|
+
destroy(factory: Factory): void;
|
|
7
13
|
}
|
|
14
|
+
export {};
|
package/dist/canvas.js
CHANGED
|
@@ -14,5 +14,24 @@ export class CanvasFactory {
|
|
|
14
14
|
context
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
|
+
reset(factory, width, height) {
|
|
18
|
+
if (!factory.canvas) {
|
|
19
|
+
throw new Error("Canvas is not specified");
|
|
20
|
+
}
|
|
21
|
+
if (width <= 0 || height <= 0) {
|
|
22
|
+
throw new Error("Invalid canvas size");
|
|
23
|
+
}
|
|
24
|
+
factory.canvas.width = width;
|
|
25
|
+
factory.canvas.height = height;
|
|
26
|
+
}
|
|
27
|
+
destroy(factory) {
|
|
28
|
+
if (!factory.canvas) {
|
|
29
|
+
throw new Error("Canvas is not specified");
|
|
30
|
+
}
|
|
31
|
+
factory.canvas.width = 0;
|
|
32
|
+
factory.canvas.height = 0;
|
|
33
|
+
factory.canvas = null;
|
|
34
|
+
factory.context = null;
|
|
35
|
+
}
|
|
17
36
|
}
|
|
18
37
|
//# sourceMappingURL=canvas.js.map
|
package/dist/canvas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas.js","sourceRoot":"","sources":["../src/canvas.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"canvas.js","sourceRoot":"","sources":["../src/canvas.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAA4B,MAAM,QAAQ,CAAA;AAOzD,MAAM,OAAO,aAAa;IAWjB,MAAM,CAAG,KAAa,EAAE,MAAc,EAAE,WAAoB;QACjE,IAAK,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAG,CAAC;YAChC,MAAM,IAAI,KAAK,CAAG,qBAAqB,CAAE,CAAA;QAC3C,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,MAAM,CAAG,KAAK,EAAE,MAAM,CAAE,CAAA;QAC3C,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAG,IAAI,CAAE,CAAA;QAE1C,IAAK,WAAW,EAAG,CAAC;YAClB,OAAO,CAAC,SAAS,CAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAE,CAAA;QAC3C,CAAC;QAED,OAAO;YACL,MAAM;YACN,OAAO;SACR,CAAA;IACH,CAAC;IAEM,KAAK,CAAG,OAAgB,EAAE,KAAa,EAAE,MAAc;QAC5D,IAAK,CAAC,OAAO,CAAC,MAAM,EAAG,CAAC;YACtB,MAAM,IAAI,KAAK,CAAG,yBAAyB,CAAE,CAAA;QAC/C,CAAC;QAED,IAAK,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAG,CAAC;YAChC,MAAM,IAAI,KAAK,CAAG,qBAAqB,CAAE,CAAA;QAC3C,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;QAC5B,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;IAChC,CAAC;IAEM,OAAO,CAAG,OAAgB;QAC/B,IAAK,CAAC,OAAO,CAAC,MAAM,EAAG,CAAC;YACtB,MAAM,IAAI,KAAK,CAAG,yBAAyB,CAAE,CAAA;QAC/C,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAA;QACxB,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;QACzB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAA;QACrB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAA;IACxB,CAAC;CACF"}
|
package/dist/modules/img2pdf.js
CHANGED
|
@@ -14,7 +14,7 @@ export const img2pdf = async (input, options = {}) => {
|
|
|
14
14
|
const imgSize = imageSize(buf);
|
|
15
15
|
const landscape = imgSize.width && imgSize.height ? imgSize.width > imgSize.height : false;
|
|
16
16
|
const doc = new PDFDocument({
|
|
17
|
-
size:
|
|
17
|
+
size: "a4",
|
|
18
18
|
layout: landscape ? "landscape" : "portrait",
|
|
19
19
|
margins: {
|
|
20
20
|
top: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"img2pdf.js","sourceRoot":"","sources":["../../src/modules/img2pdf.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,WAAW,MAAM,QAAQ,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AA4BzC,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAC1B,KAA4B,EAC5B,UAAmB,EAAE,EACrB,EAAE;IACF,OAAO,IAAI,OAAO,CAAW,CAAE,OAAO,EAAE,MAAM,EAAG,EAAE;QACjD,SAAS,CAAG,KAAK,CAAE,CAAC,IAAI,CAAG,KAAK,EAAG,GAAG,EAAG,EAAE;YACzC,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAG,GAAG,CAAE,CAAA;YAC7C,IAAK,IAAI,EAAE,IAAI,KAAK,YAAY,IAAI,IAAI,EAAE,IAAI,KAAK,WAAW,EAAG,CAAC;gBAChE,OAAO,CAAC,KAAK,CAAG,8CAA8C,CAAE,CAAA;gBAChE,OAAO,CAAC,IAAI,CAAG,CAAC,CAAE,CAAA;YACpB,CAAC;YAED,MAAM,UAAU,GAAU,EAAE,CAAA;YAC5B,MAAM,OAAO,GAAG,SAAS,CAAG,GAAG,CAAE,CAAA;YACjC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAA;YAE1F,MAAM,GAAG,GAAG,IAAI,WAAW,CAAG;gBAC5B,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"img2pdf.js","sourceRoot":"","sources":["../../src/modules/img2pdf.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,11 @@
|
|
|
1
|
-
import { PngConfig, JpegConfig } from "canvas";
|
|
2
1
|
type Options = {
|
|
3
2
|
scale?: number;
|
|
4
3
|
password?: string;
|
|
5
|
-
|
|
6
|
-
mime: "image/png";
|
|
7
|
-
options: PngConfig;
|
|
8
|
-
} | {
|
|
9
|
-
mime: "image/jpeg";
|
|
10
|
-
options: JpegConfig;
|
|
11
|
-
};
|
|
4
|
+
mime?: "image/png" | "image/jpeg";
|
|
12
5
|
};
|
|
13
6
|
export declare const pdf2img: (input: Buffer | string | URL, options?: Options) => Promise<{
|
|
14
7
|
length: number;
|
|
15
|
-
metadata:
|
|
8
|
+
metadata: any;
|
|
16
9
|
pages: Buffer[];
|
|
17
10
|
}>;
|
|
18
11
|
export {};
|
package/dist/modules/pdf2img.js
CHANGED
|
@@ -1,12 +1,19 @@
|
|
|
1
|
+
const originalLog = console.log;
|
|
2
|
+
console.log = function (message, ...args) {
|
|
3
|
+
if (message && message === `Warning: applyPath2DToCanvasRenderingContext: "TypeError: Cannot assign to read only property 'clip' of object '#<CanvasRenderingContext2D>'".`) {
|
|
4
|
+
return;
|
|
5
|
+
}
|
|
6
|
+
originalLog.apply(console, [message, ...args]);
|
|
7
|
+
};
|
|
1
8
|
import { CanvasFactory } from "../canvas.js";
|
|
2
9
|
import { getBuffer } from "../utilies.js";
|
|
3
10
|
import { getDocument } from "pdfjs-dist/legacy/build/pdf.mjs";
|
|
4
11
|
import { fileTypeFromBuffer } from "file-type";
|
|
5
12
|
import { fileURLToPath } from "url";
|
|
6
13
|
import { resolve, dirname, join, sep } from "path";
|
|
14
|
+
import sharp from "sharp";
|
|
7
15
|
const __filename = fileURLToPath(import.meta.url);
|
|
8
16
|
const __dirname = dirname(__filename);
|
|
9
|
-
const canvasFactory = new CanvasFactory();
|
|
10
17
|
export const pdf2img = async (input, options = {}) => {
|
|
11
18
|
const buffer = await getBuffer(input);
|
|
12
19
|
const type = await fileTypeFromBuffer(buffer);
|
|
@@ -15,11 +22,14 @@ export const pdf2img = async (input, options = {}) => {
|
|
|
15
22
|
process.exit(1);
|
|
16
23
|
}
|
|
17
24
|
const pdfjsPath = resolve(__dirname, "..", "..", "node_modules", "pdfjs-dist");
|
|
25
|
+
const canvasFactory = new CanvasFactory();
|
|
18
26
|
const newoptions = {
|
|
19
27
|
password: options.password ?? undefined,
|
|
20
28
|
standardFontDataUrl: join(pdfjsPath, `standard_fonts${sep}`),
|
|
21
29
|
cMapUrl: join(pdfjsPath, `cmaps${sep}`),
|
|
22
30
|
isEvalSupported: false,
|
|
31
|
+
CanvasFactory: CanvasFactory,
|
|
32
|
+
verbosity: 0,
|
|
23
33
|
data: Uint8Array.from(buffer)
|
|
24
34
|
};
|
|
25
35
|
const pdfDocument = await getDocument(newoptions).promise;
|
|
@@ -30,22 +40,17 @@ export const pdf2img = async (input, options = {}) => {
|
|
|
30
40
|
}
|
|
31
41
|
async function getPage(pageNumber) {
|
|
32
42
|
const page = await pdfDocument.getPage(pageNumber);
|
|
33
|
-
const viewport = page.getViewport({ scale: options.scale ??
|
|
43
|
+
const viewport = page.getViewport({ scale: options.scale ?? 300 / 72 });
|
|
34
44
|
const { canvas, context } = canvasFactory.create(viewport.width, viewport.height, true);
|
|
35
45
|
await page.render({
|
|
36
46
|
canvasContext: context,
|
|
37
47
|
viewport
|
|
38
48
|
}).promise;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
resolution: 1920,
|
|
45
|
-
compressionLevel: 0,
|
|
46
|
-
filters: canvas.PNG_FILTER_NONE
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
+
const imageBuffer = canvas.toBuffer();
|
|
50
|
+
const processedBuffer = await sharp(imageBuffer)
|
|
51
|
+
.toFormat(options.mime === "image/jpeg" ? "jpeg" : "png")
|
|
52
|
+
.toBuffer();
|
|
53
|
+
return processedBuffer;
|
|
49
54
|
}
|
|
50
55
|
return {
|
|
51
56
|
length: pdfDocument.numPages,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf2img.js","sourceRoot":"","sources":["../../src/modules/pdf2img.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"pdf2img.js","sourceRoot":"","sources":["../../src/modules/pdf2img.ts"],"names":[],"mappings":"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"}
|