@iqx-limited/quick-pdf 1.1.2 → 1.1.4

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
@@ -1,13 +1,13 @@
1
1
  # QuickPDF
2
2
  Handling PDFs in NodeJS (📃 to 🖼️)
3
3
 
4
- This project provides a set of utilities for converting various file formats without the need for additional dependencies. It supports multiple file types and leverages technologies like `Playwright` and `PDFKit` for file processing.
4
+ This project provides a set of utilities for converting various file formats without the need for additional dependencies. It supports multiple file types and leverages technologies like `Puppeteer` and `PDFKit` for file processing.
5
5
 
6
6
  ## Features
7
7
 
8
8
  - **HTML to PDF**: Converts HTML content (from a URL or file path) into a PDF.
9
9
  - **Image to PDF**: Converts images (JPEG, PNG) into a PDF, with optional headers and footers.
10
- - **PDF to Image**: Converts PDF files to image formats (JPEG or PNG) using `playwright`
10
+ - **PDF to Image**: Converts PDF files to image formats (JPEG or PNG) using `pdfjs-dist` and `canvas`.
11
11
  - **Utilities**: Includes helper functions to fetch and read HTML files and read files from local directories.
12
12
 
13
13
  ## Requirements
@@ -89,22 +89,20 @@ img2pdf(input: Buffer | string | URL, options: Options = {})
89
89
 
90
90
  ### Function Signature:
91
91
  ```typescript
92
- pdf2img(input: string | URL, options: Options = {})
92
+ pdf2img(input: Buffer | string | URL, options: Options = {})
93
93
  ```
94
94
 
95
- If no pdf pages are detected in the input, an empty pages array is returned.
96
-
97
95
  ### Parameters:
98
96
 
99
97
  | Parameter | Type | Description | Data that can be passed |
100
98
  |-----------|---------------------------|--------------------------------------------------|--------------------------------------------|
101
- | `input` | `string \| URL` | The PDF content to convert to images. | A Buffer, file path, or URL pointing to a PDF. String or URL object can be passed for an HTTP or Local Path. |
102
- | `headers` | `Record<string, string>` | Additional headers to accompany the request for the PDF Document | An object containing additional HTTP headers |
99
+ | `input` | `Buffer \| string \| URL` | The PDF content to convert to images. | A Buffer, file path, or URL pointing to a PDF. String or URL object can be passed for an HTTP or Local Path. |
103
100
  | `options` | `Options` | Optional configuration for the image conversion. | An object with optional scale, password, and buffer configuration |
104
101
 
105
102
  ### Options Type:
106
103
 
107
104
  | Property | Type | Description |
108
105
  |-----------|----------------------------------------------------------------------|--------------------------------------------------|
109
- | `quality` | `number` | Quality of image for jpg. Default is 100. |
110
- | `type` | `string` | The mime type to output - "png" | "jpg". Default is "png". |
106
+ | `quality` | `number` | Quality for rendering the PDF pages, not applicable for PNG. Default is 100. |
107
+ | `password`| `string` | Optional password for decrypting password-protected PDFs. |
108
+ | `type` | `string` | The mime type to output - "png" | "jpeg" | "webp". Default is "png". |
@@ -3,4 +3,4 @@ export type Options = {
3
3
  rules?: object;
4
4
  scale?: number;
5
5
  };
6
- export declare const html2pdf: (input: string | URL, options?: Options) => Promise<string | Buffer<ArrayBufferLike>>;
6
+ export declare const html2pdf: (input: string | URL, options?: Options) => Promise<string | Buffer>;
@@ -1,7 +1,7 @@
1
1
  import { existsSync } from "fs";
2
2
  import { HtmlValidate } from "html-validate/node";
3
- import { chromium } from "playwright";
4
3
  import { fetchHtmlFromUrl, readHtmlFromFilePath } from "../utilies.js";
4
+ import puppeteer from "puppeteer";
5
5
  export const html2pdf = async (input, options = {}) => {
6
6
  const validator = new HtmlValidate(options.rules ?? {
7
7
  extends: ["html-validate:standard"],
@@ -18,11 +18,15 @@ export const html2pdf = async (input, options = {}) => {
18
18
  }
19
19
  return validator.validateString(htmlContent).then(async (res) => {
20
20
  if (res.valid) {
21
- const browser = await chromium.launch();
21
+ const browser = await puppeteer.launch({
22
+ browser: "firefox",
23
+ headless: true,
24
+ });
22
25
  const page = await browser.newPage();
23
26
  await page.setContent(htmlContent, { waitUntil: "load" });
24
- const pdfBuffer = await page.pdf({ format: "A4", printBackground: true, scale: options.scale ?? 1 });
27
+ const pdf = await page.pdf({ format: "A4", printBackground: true, scale: options.scale ?? 1 });
25
28
  await browser.close();
29
+ const pdfBuffer = Buffer.from(pdf);
26
30
  if (options.base64 ?? false) {
27
31
  return pdfBuffer.toString("base64");
28
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"html2pdf.js","sourceRoot":"","sources":["../../src/modules/html2pdf.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AA2BtE,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAC3B,KAAmB,EACnB,UAAmB,EAAG,EACtB,EAAE;IACF,MAAM,SAAS,GAAG,IAAI,YAAY,CAAG,OAAO,CAAC,KAAK,IAAI;QACpD,OAAO,EAAE,CAAE,wBAAwB,CAAE;QACrC,KAAK,EAAE;YACL,wBAAwB,EAAE,KAAK;SAChC;KACF,CAAE,CAAA;IAEH,IAAI,WAAW,GAAG,KAAK,CAAC,QAAQ,EAAG,CAAA;IAGnC,IAAK,WAAW,CAAC,UAAU,CAAG,SAAS,CAAE,IAAI,WAAW,CAAC,UAAU,CAAG,UAAU,CAAE,EAAG,CAAC;QACpF,WAAW,GAAG,MAAM,gBAAgB,CAAG,WAAW,CAAE,CAAA;IACtD,CAAC;SAEI,IAAK,UAAU,CAAG,KAAK,CAAE,EAAG,CAAC;QAChC,WAAW,GAAG,MAAM,oBAAoB,CAAG,WAAW,CAAE,CAAA;IAC1D,CAAC;IAED,OAAO,SAAS,CAAC,cAAc,CAAG,WAAW,CAAE,CAAC,IAAI,CAAG,KAAK,EAAG,GAAG,EAAG,EAAE;QACrE,IAAK,GAAG,CAAC,KAAK,EAAG,CAAC;YAChB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAG,CAAA;YACxC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAG,CAAA;YACrC,MAAM,IAAI,CAAC,UAAU,CAAG,WAAW,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAE,CAAA;YAC5D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,GAAG,CAAG,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC,EAAE,CAAE,CAAA;YACvG,MAAM,OAAO,CAAC,KAAK,EAAI,CAAA;YACvB,IAAK,OAAO,CAAC,MAAM,IAAI,KAAK,EAAG,CAAC;gBAC9B,OAAO,SAAS,CAAC,QAAQ,CAAG,QAAQ,CAAE,CAAA;YACxC,CAAC;YACD,OAAO,SAAS,CAAA;QAClB,CAAC;aAAM,CAAC;YAEN,OAAO,OAAO,CAAC,MAAM,CAAG;gBACtB,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE;oBACL,MAAM,EAAE,GAAG,CAAC,UAAU;oBACtB,QAAQ,EAAE,GAAG,CAAC,YAAY;iBAC3B;gBACD,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAG,GAAG,CAAC,EAAE;oBAClC,OAAO;wBACL,IAAI,EAAE,GAAG,CAAC,QAAQ;wBAClB,KAAK,EAAE;4BACL,MAAM,EAAE,GAAG,CAAC,UAAU;4BACtB,QAAQ,EAAE,GAAG,CAAC,YAAY;yBAC3B;wBACD,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAG,GAAG,CAAC,EAAE;4BACjC,OAAO;gCACL,OAAO,EAAE,GAAG,CAAC,OAAO;gCACpB,IAAI,EAAE,GAAG,CAAC,IAAI;gCACd,MAAM,EAAE,GAAG,CAAC,MAAM;gCAClB,MAAM,EAAE,GAAG,CAAC,MAAM;6BACnB,CAAA;wBACH,CAAC,CAAE;qBACJ,CAAA;gBACH,CAAC,CAAE;aACJ,CAAE,CAAA;QACL,CAAC;IACH,CAAC,CAAE,CAAA;AACL,CAAC,CAAA"}
1
+ {"version":3,"file":"html2pdf.js","sourceRoot":"","sources":["../../src/modules/html2pdf.ts"],"names":[],"mappings":"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"}
@@ -3,5 +3,5 @@ type Options = {
3
3
  footer?: string;
4
4
  fontSize?: number;
5
5
  };
6
- export declare const img2pdf: (input: Buffer | string | URL, options?: Options) => Promise<Buffer<ArrayBufferLike>>;
6
+ export declare const img2pdf: (input: Buffer | string | URL, options?: Options) => Promise<Buffer>;
7
7
  export {};
@@ -1,10 +1,11 @@
1
1
  type Options = {
2
2
  quality?: number;
3
- headers?: Record<string, string>;
4
- type?: "png" | "jpeg";
3
+ password?: string;
4
+ type?: "png" | "jpeg" | "webp";
5
5
  };
6
- export declare const pdf2img: (input: string | URL | Buffer, options?: Options) => Promise<{
7
- length: number;
8
- pages: Buffer<ArrayBufferLike>[];
6
+ export declare const pdf2img: (input: Buffer | string | URL, options?: Options) => Promise<{
7
+ length: any;
8
+ metadata: any;
9
+ pages: Uint8Array[];
9
10
  }>;
10
11
  export {};
@@ -1,38 +1,112 @@
1
- import { chromium } from "playwright";
1
+ import { getBuffer } from "../utilies.js";
2
+ import { fileTypeFromBuffer } from "file-type";
3
+ import { fileURLToPath, pathToFileURL } from "url";
4
+ import { resolve, dirname } from "path";
5
+ import puppeteer from "puppeteer";
6
+ import { writeFile, readFile, unlink } from "fs/promises";
7
+ const __filename = fileURLToPath(import.meta.url);
8
+ const __dirname = dirname(__filename);
2
9
  export const pdf2img = async (input, options = {}) => {
3
- const browser = await chromium.launch();
10
+ const browser = await puppeteer.launch({
11
+ browser: "firefox",
12
+ headless: true,
13
+ });
4
14
  const page = await browser.newPage();
5
- await page.setExtraHTTPHeaders(options.headers ?? {});
6
- await page.goto(input.toString(), { waitUntil: "networkidle" });
15
+ let path = "";
16
+ let buffer = Buffer.from("");
17
+ let tempFile = false;
18
+ if (Buffer.isBuffer(input)) {
19
+ buffer = input;
20
+ path = resolve(__dirname, "temp.pdf");
21
+ tempFile = true;
22
+ await writeFile(path, buffer);
23
+ }
24
+ else {
25
+ if (typeof input === "string" && input.startsWith("http")) {
26
+ path = input;
27
+ buffer = await getBuffer(path);
28
+ }
29
+ else {
30
+ path = pathToFileURL(resolve(input.toString())).toString();
31
+ buffer = await readFile(path);
32
+ }
33
+ }
34
+ const fileType = await fileTypeFromBuffer(buffer);
35
+ if (!fileType || fileType.ext !== "pdf") {
36
+ throw new Error("Invalid PDF file");
37
+ }
38
+ await page.goto(path, {
39
+ waitUntil: "networkidle0"
40
+ });
41
+ try {
42
+ await page.waitForSelector('input[type="password"]', {
43
+ visible: true,
44
+ timeout: 5000
45
+ });
46
+ console.log("Password prompt detected, entering password...");
47
+ await page.type('input[type="password"]', options.password || "");
48
+ await page.keyboard.press("Enter");
49
+ }
50
+ catch (error) {
51
+ console.log("No password prompt, continuing with unlocked PDF...");
52
+ }
53
+ const imageBuffers = [];
7
54
  const pageCount = await page.evaluate(() => {
8
- const pages = document.querySelectorAll(".page");
9
- return pages.length;
55
+ if (window.PDFViewerApplication) {
56
+ return window.PDFViewerApplication.pagesCount;
57
+ }
58
+ return 0;
59
+ });
60
+ const metadata = await page.evaluate(() => {
61
+ const app = window.PDFViewerApplication;
62
+ if (app && app.pdfDocument) {
63
+ return app.documentInfo ?? {};
64
+ }
65
+ return {};
66
+ });
67
+ const pdfDimensions = await page.evaluate(() => {
68
+ const canvas = document.querySelector("canvas");
69
+ const { width, height } = canvas.getBoundingClientRect();
70
+ return { width, height };
71
+ });
72
+ await page.setViewport({
73
+ width: pdfDimensions.width,
74
+ height: pdfDimensions.height
10
75
  });
11
- const pages = [];
12
76
  for (let i = 1; i <= pageCount; i++) {
13
- await page.waitForSelector(`.page[data-page-number='${i}']`, { timeout: 10000 });
14
- const pdfPage = await page.$(`.page[data-page-number='${i}']`);
15
- if (pdfPage) {
16
- const boundingBox = await pdfPage.boundingBox();
17
- if (boundingBox) {
18
- const imageBuffer = await page.screenshot({
19
- type: options.type ?? "png",
20
- quality: options.quality ?? 100,
21
- clip: {
22
- x: boundingBox.x,
23
- y: boundingBox.y,
24
- width: boundingBox.width,
25
- height: boundingBox.height,
26
- }
27
- });
28
- pages.push(imageBuffer);
77
+ await page.evaluate((pageNum) => {
78
+ if (window.PDFViewerApplication) {
79
+ window.PDFViewerApplication.page = pageNum;
29
80
  }
81
+ }, i);
82
+ const pageBoundingBox = await page.evaluate(() => {
83
+ const pageElement = document.querySelector(".canvasWrapper");
84
+ const { x, y, width, height } = pageElement.getBoundingClientRect();
85
+ return { x, y, width, height };
86
+ });
87
+ const screenshotOptions = {
88
+ fullPage: false,
89
+ type: options.type ?? "png",
90
+ clip: {
91
+ x: pageBoundingBox.x,
92
+ y: pageBoundingBox.y,
93
+ width: pageBoundingBox.width,
94
+ height: pageBoundingBox.height
95
+ }
96
+ };
97
+ if (options.type && options.type !== "png") {
98
+ screenshotOptions.quality = options.quality ?? 100;
30
99
  }
100
+ imageBuffers.push(await page.screenshot(screenshotOptions));
101
+ }
102
+ if (tempFile) {
103
+ await unlink(path);
31
104
  }
32
105
  await browser.close();
33
106
  return {
34
107
  length: pageCount,
35
- pages
108
+ metadata: metadata.info,
109
+ pages: imageBuffers
36
110
  };
37
111
  };
38
112
  //# sourceMappingURL=pdf2img.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pdf2img.js","sourceRoot":"","sources":["../../src/modules/pdf2img.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AA8BrC,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAC1B,KAA4B,EAC5B,UAAmB,EAAG,EACtB,EAAE;IACF,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAI,CAAA;IACzC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAI,CAAA;IAEtC,MAAM,IAAI,CAAC,mBAAmB,CAAG,OAAO,CAAC,OAAO,IAAI,EAAG,CAAE,CAAA;IACzD,MAAM,IAAI,CAAC,IAAI,CAAG,KAAK,CAAC,QAAQ,EAAI,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,CAAE,CAAA;IAGpE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAG,GAAI,EAAE;QAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,gBAAgB,CAAG,OAAO,CAAE,CAAA;QACnD,OAAO,KAAK,CAAC,MAAM,CAAA;IACrB,CAAC,CAAE,CAAA;IAEH,MAAM,KAAK,GAAe,EAAG,CAAA;IAE7B,KAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC,EAAE,EAAG,CAAC;QACtC,MAAM,IAAI,CAAC,eAAe,CAAG,2BAA2B,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAE,CAAA;QAEnF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,CAAC,CAAG,2BAA2B,CAAC,IAAI,CAAE,CAAA;QACjE,IAAK,OAAO,EAAG,CAAC;YAEd,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,WAAW,EAAI,CAAA;YACjD,IAAK,WAAW,EAAG,CAAC;gBAElB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAG;oBAC1C,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,KAAK;oBAC3B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,GAAG;oBAC/B,IAAI,EAAE;wBACJ,CAAC,EAAE,WAAW,CAAC,CAAC;wBAChB,CAAC,EAAE,WAAW,CAAC,CAAC;wBAChB,KAAK,EAAE,WAAW,CAAC,KAAK;wBACxB,MAAM,EAAE,WAAW,CAAC,MAAM;qBAC3B;iBACF,CAAE,CAAA;gBAEH,KAAK,CAAC,IAAI,CAAG,WAAW,CAAE,CAAA;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,OAAO,CAAC,KAAK,EAAI,CAAA;IAEvB,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,KAAK;KACN,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"pdf2img.js","sourceRoot":"","sources":["../../src/modules/pdf2img.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"root":["../src/index.ts","../src/utilies.ts","../src/modules/html2pdf.ts","../src/modules/img2pdf.ts","../src/modules/pdf2img.ts"],"version":"5.7.2"}
1
+ {"root":["../src/index.ts","../src/utilies.ts","../src/modules/html2pdf.ts","../src/modules/img2pdf.ts","../src/modules/pdf2img.ts"],"version":"5.6.3"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iqx-limited/quick-pdf",
3
- "version": "1.1.2",
3
+ "version": "1.1.4",
4
4
  "author": "IQX",
5
5
  "description": "Converting PDFs to images (📃 to 📸)",
6
6
  "type": "module",
@@ -17,6 +17,7 @@
17
17
  "jpeg",
18
18
  "html",
19
19
  "png",
20
+ "webp",
20
21
  "img",
21
22
  "pdf-to-img",
22
23
  "pdf-to-png",
@@ -35,20 +36,20 @@
35
36
  "engineStrict": true,
36
37
  "dependencies": {
37
38
  "file-type": "^19.6.0",
38
- "html-validate": "^8.26.0",
39
+ "html-validate": "^8.25.0",
39
40
  "image-size": "^1.1.1",
40
41
  "path2d-polyfill": "^3.1.3",
41
42
  "pdfkit": "^0.15.1",
42
- "playwright": "^1.49.0",
43
+ "puppeteer": "^23.9.0",
43
44
  "semver": "^7.6.3"
44
45
  },
45
46
  "devDependencies": {
46
47
  "@stylistic/eslint-plugin": "^2.11.0",
47
- "@types/node": "^22.10.1",
48
- "@types/pdfkit": "^0.13.6",
48
+ "@types/node": "^22.9.0",
49
+ "@types/pdfkit": "^0.13.5",
49
50
  "@types/semver": "^7.5.8",
50
51
  "eslint": "^9.15.0",
51
- "typescript": "^5.7.2",
52
- "typescript-eslint": "^8.16.0"
52
+ "typescript": "^5.6.3",
53
+ "typescript-eslint": "^8.15.0"
53
54
  }
54
55
  }
package/dist/canvas.d.ts DELETED
@@ -1,14 +0,0 @@
1
- import { Canvas, SKRSContext2D } from "@napi-rs/canvas";
2
- type Factory = {
3
- canvas: Canvas | null;
4
- context: SKRSContext2D | null;
5
- };
6
- export declare class CanvasFactory {
7
- create(width: number, height: number, transparent: boolean): {
8
- canvas: Canvas;
9
- context: SKRSContext2D;
10
- };
11
- reset(factory: Factory, width: number, height: number): void;
12
- destroy(factory: Factory): void;
13
- }
14
- export {};
package/dist/canvas.js DELETED
@@ -1,37 +0,0 @@
1
- import { Canvas } from "@napi-rs/canvas";
2
- export class CanvasFactory {
3
- create(width, height, transparent) {
4
- if (width <= 0 || height <= 0) {
5
- throw new Error("Invalid canvas size");
6
- }
7
- const canvas = new Canvas(width, height);
8
- const context = canvas.getContext("2d");
9
- if (transparent) {
10
- context.clearRect(0, 0, width, height);
11
- }
12
- return {
13
- canvas,
14
- context
15
- };
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
- }
36
- }
37
- //# sourceMappingURL=canvas.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"canvas.js","sourceRoot":"","sources":["../src/canvas.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAiB,MAAM,iBAAiB,CAAA;AAOvD,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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,42 +0,0 @@
1
- import { existsSync, rmSync } from "fs";
2
- import { execSync } from "child_process";
3
- import { join } from "path";
4
- import { homedir } from "os";
5
- const playwrightCacheDir = join(homedir(), ".cache", "ms-playwright");
6
- function isChromeInstalled() {
7
- try {
8
- if (process.platform === "win32") {
9
- const possiblePaths = [
10
- "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
11
- "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe"
12
- ];
13
- if (possiblePaths.some(path => existsSync(path))) {
14
- return true;
15
- }
16
- else {
17
- throw new Error("Chrome not found");
18
- }
19
- }
20
- else {
21
- execSync("command -v google-chrome", { stdio: "ignore" });
22
- console.log(temp);
23
- }
24
- return true;
25
- }
26
- catch (e) {
27
- console.error(e);
28
- return false;
29
- }
30
- }
31
- if (isChromeInstalled()) {
32
- console.log("Google Chrome is installed. Skipping Playwright browser install...");
33
- }
34
- else {
35
- if (existsSync(playwrightCacheDir)) {
36
- console.log("Deleting existing Playwright cache...");
37
- rmSync(playwrightCacheDir, { recursive: true, force: true });
38
- }
39
- console.log("Google Chrome is not installed. Installing Playwright browsers...");
40
- execSync("npx playwright install", { stdio: "inherit" });
41
- }
42
- //# sourceMappingURL=install-playwright.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"install-playwright.js","sourceRoot":"","sources":["../install-playwright.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,IAAI,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AAG5B,MAAM,kBAAkB,GAAG,IAAI,CAAG,OAAO,EAAI,EAAE,QAAQ,EAAE,eAAe,CAAE,CAAA;AAG1E,SAAS,iBAAiB;IACxB,IAAI,CAAC;QAEH,IAAK,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAG,CAAC;YAEnC,MAAM,aAAa,GAAG;gBACpB,4DAA4D;gBAC5D,kEAAkE;aACnE,CAAA;YACD,IAAK,aAAa,CAAC,IAAI,CAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAG,IAAI,CAAE,CAAE,EAAG,CAAC;gBACzD,OAAO,IAAI,CAAA;YACb,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAG,kBAAkB,CAAE,CAAA;YACxC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,QAAQ,CAAG,0BAA0B,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAE,CAAA;YAC5D,OAAO,CAAC,GAAG,CAAG,IAAI,CAAE,CAAA;QACtB,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,OAAQ,CAAC,EAAG,CAAC;QACb,OAAO,CAAC,KAAK,CAAG,CAAC,CAAE,CAAA;QACnB,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAGD,IAAK,iBAAiB,EAAI,EAAG,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAG,oEAAoE,CAAE,CAAA;AACtF,CAAC;KAAM,CAAC;IAEN,IAAK,UAAU,CAAG,kBAAkB,CAAE,EAAG,CAAC;QACxC,OAAO,CAAC,GAAG,CAAG,uCAAuC,CAAE,CAAA;QACvD,MAAM,CAAG,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAE,CAAA;IACjE,CAAC;IACD,OAAO,CAAC,GAAG,CAAG,mEAAmE,CAAE,CAAA;IACnF,QAAQ,CAAG,wBAAwB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAE,CAAA;AAC7D,CAAC"}
@@ -1,14 +0,0 @@
1
- import { Canvas, CanvasRenderingContext2D } from "canvas";
2
- type Factory = {
3
- canvas: Canvas | null;
4
- context: CanvasRenderingContext2D | null;
5
- };
6
- export declare class CanvasFactory {
7
- create(width: number, height: number, transparent: boolean): {
8
- canvas: Canvas;
9
- context: CanvasRenderingContext2D;
10
- };
11
- reset(factory: Factory, width: number, height: number): void;
12
- destroy(factory: Factory): void;
13
- }
14
- export {};
@@ -1,37 +0,0 @@
1
- import { Canvas } from "canvas";
2
- export class CanvasFactory {
3
- create(width, height, transparent) {
4
- if (width <= 0 || height <= 0) {
5
- throw new Error("Invalid canvas size");
6
- }
7
- const canvas = new Canvas(width, height);
8
- const context = canvas.getContext("2d");
9
- if (transparent) {
10
- context.clearRect(0, 0, width, height);
11
- }
12
- return {
13
- canvas,
14
- context
15
- };
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
- }
36
- }
37
- //# sourceMappingURL=canvas.js.map
@@ -1 +0,0 @@
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"}
@@ -1,3 +0,0 @@
1
- export * from "./modules/pdf2img.js";
2
- export * from "./modules/img2pdf.js";
3
- export * from "./modules/html2pdf.js";
package/dist/src/index.js DELETED
@@ -1,10 +0,0 @@
1
- import { satisfies } from "semver";
2
- const requiredVersion = ">=22.0.0";
3
- if (!satisfies(process.version, requiredVersion)) {
4
- console.error(`\nError: Node.js version ${requiredVersion} is required. You are using ${process.version}.\n`);
5
- process.exit(1);
6
- }
7
- export * from "./modules/pdf2img.js";
8
- export * from "./modules/img2pdf.js";
9
- export * from "./modules/html2pdf.js";
10
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAElC,MAAM,eAAe,GAAG,UAAU,CAAA;AAElC,IAAK,CAAC,SAAS,CAAG,OAAO,CAAC,OAAO,EAAE,eAAe,CAAE,EAAG,CAAC;IACtD,OAAO,CAAC,KAAK,CACX,4BAA4B,eAAe,+BAA+B,OAAO,CAAC,OAAO,KAAK,CAC/F,CAAA;IACD,OAAO,CAAC,IAAI,CAAG,CAAC,CAAE,CAAA;AACpB,CAAC;AAED,cAAc,sBAAsB,CAAA;AAEpC,cAAc,sBAAsB,CAAA;AAEpC,cAAc,uBAAuB,CAAA"}
@@ -1,6 +0,0 @@
1
- export type Options = {
2
- base64?: boolean;
3
- rules?: object;
4
- scale?: number;
5
- };
6
- export declare const html2pdf: (input: string | URL, options?: Options) => Promise<string | Buffer>;
@@ -1,59 +0,0 @@
1
- import { existsSync } from "fs";
2
- import { HtmlValidate } from "html-validate/node";
3
- import { chromium } from "playwright";
4
- import { fetchHtmlFromUrl, readHtmlFromFilePath } from "../utilies.js";
5
- export const html2pdf = async (input, options = {}) => {
6
- const validator = new HtmlValidate(options.rules ?? {
7
- extends: ["html-validate:standard"],
8
- rules: {
9
- "no-trailing-whitespace": "off"
10
- }
11
- });
12
- let htmlContent = input.toString();
13
- if (htmlContent.startsWith("http://") || htmlContent.startsWith("https://")) {
14
- htmlContent = await fetchHtmlFromUrl(htmlContent);
15
- }
16
- else if (existsSync(input)) {
17
- htmlContent = await readHtmlFromFilePath(htmlContent);
18
- }
19
- return validator.validateString(htmlContent).then(async (res) => {
20
- if (res.valid) {
21
- const browser = await chromium.launch();
22
- const page = await browser.newPage();
23
- await page.setContent(htmlContent, { waitUntil: "load" });
24
- const pdfBuffer = await page.pdf({ format: "A4", printBackground: true, scale: options.scale ?? 1 });
25
- await browser.close();
26
- if (options.base64 ?? false) {
27
- return pdfBuffer.toString("base64");
28
- }
29
- return pdfBuffer;
30
- }
31
- else {
32
- return Promise.reject({
33
- valid: false,
34
- count: {
35
- errors: res.errorCount,
36
- warnings: res.warningCount
37
- },
38
- validation: res.results.map(res => {
39
- return {
40
- file: res.filePath,
41
- count: {
42
- errors: res.errorCount,
43
- warnings: res.warningCount
44
- },
45
- messages: res.messages.map(msg => {
46
- return {
47
- message: msg.message,
48
- line: msg.line,
49
- column: msg.column,
50
- ruleId: msg.ruleId
51
- };
52
- })
53
- };
54
- })
55
- });
56
- }
57
- });
58
- };
59
- //# sourceMappingURL=html2pdf.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"html2pdf.js","sourceRoot":"","sources":["../../../src/modules/html2pdf.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AA2BtE,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAC3B,KAAmB,EACnB,UAAmB,EAAG,EACtB,EAAE;IACF,MAAM,SAAS,GAAG,IAAI,YAAY,CAAG,OAAO,CAAC,KAAK,IAAI;QACpD,OAAO,EAAE,CAAE,wBAAwB,CAAE;QACrC,KAAK,EAAE;YACL,wBAAwB,EAAE,KAAK;SAChC;KACF,CAAE,CAAA;IAEH,IAAI,WAAW,GAAG,KAAK,CAAC,QAAQ,EAAG,CAAA;IAGnC,IAAK,WAAW,CAAC,UAAU,CAAG,SAAS,CAAE,IAAI,WAAW,CAAC,UAAU,CAAG,UAAU,CAAE,EAAG,CAAC;QACpF,WAAW,GAAG,MAAM,gBAAgB,CAAG,WAAW,CAAE,CAAA;IACtD,CAAC;SAEI,IAAK,UAAU,CAAG,KAAK,CAAE,EAAG,CAAC;QAChC,WAAW,GAAG,MAAM,oBAAoB,CAAG,WAAW,CAAE,CAAA;IAC1D,CAAC;IAED,OAAO,SAAS,CAAC,cAAc,CAAG,WAAW,CAAE,CAAC,IAAI,CAAG,KAAK,EAAG,GAAG,EAAG,EAAE;QACrE,IAAK,GAAG,CAAC,KAAK,EAAG,CAAC;YAChB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAG,CAAA;YACxC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAG,CAAA;YACrC,MAAM,IAAI,CAAC,UAAU,CAAG,WAAW,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAE,CAAA;YAC5D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,GAAG,CAAG,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC,EAAE,CAAE,CAAA;YACvG,MAAM,OAAO,CAAC,KAAK,EAAI,CAAA;YACvB,IAAK,OAAO,CAAC,MAAM,IAAI,KAAK,EAAG,CAAC;gBAC9B,OAAO,SAAS,CAAC,QAAQ,CAAG,QAAQ,CAAE,CAAA;YACxC,CAAC;YACD,OAAO,SAAS,CAAA;QAClB,CAAC;aAAM,CAAC;YAEN,OAAO,OAAO,CAAC,MAAM,CAAG;gBACtB,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE;oBACL,MAAM,EAAE,GAAG,CAAC,UAAU;oBACtB,QAAQ,EAAE,GAAG,CAAC,YAAY;iBAC3B;gBACD,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAG,GAAG,CAAC,EAAE;oBAClC,OAAO;wBACL,IAAI,EAAE,GAAG,CAAC,QAAQ;wBAClB,KAAK,EAAE;4BACL,MAAM,EAAE,GAAG,CAAC,UAAU;4BACtB,QAAQ,EAAE,GAAG,CAAC,YAAY;yBAC3B;wBACD,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAG,GAAG,CAAC,EAAE;4BACjC,OAAO;gCACL,OAAO,EAAE,GAAG,CAAC,OAAO;gCACpB,IAAI,EAAE,GAAG,CAAC,IAAI;gCACd,MAAM,EAAE,GAAG,CAAC,MAAM;gCAClB,MAAM,EAAE,GAAG,CAAC,MAAM;6BACnB,CAAA;wBACH,CAAC,CAAE;qBACJ,CAAA;gBACH,CAAC,CAAE;aACJ,CAAE,CAAA;QACL,CAAC;IACH,CAAC,CAAE,CAAA;AACL,CAAC,CAAA"}
@@ -1,7 +0,0 @@
1
- type Options = {
2
- header?: string;
3
- footer?: string;
4
- fontSize?: number;
5
- };
6
- export declare const img2pdf: (input: Buffer | string | URL, options?: Options) => Promise<Buffer>;
7
- export {};
@@ -1,64 +0,0 @@
1
- import { fileTypeFromBuffer } from "file-type";
2
- import { imageSize } from "image-size";
3
- import PDFDocument from "pdfkit";
4
- import { getBuffer } from "../utilies.js";
5
- export const img2pdf = async (input, options = {}) => {
6
- return new Promise((resolve, reject) => {
7
- getBuffer(input).then(async (buf) => {
8
- const type = await fileTypeFromBuffer(buf);
9
- if (type?.mime !== "image/jpeg" && type?.mime !== "image/png") {
10
- console.error(`ERROR: Provided File is not a JPEG or a PNG.`);
11
- process.exit(1);
12
- }
13
- const pdfBuffers = [];
14
- const imgSize = imageSize(buf);
15
- const landscape = imgSize.width && imgSize.height ? imgSize.width > imgSize.height : false;
16
- const doc = new PDFDocument({
17
- size: "a4",
18
- layout: landscape ? "landscape" : "portrait",
19
- margins: {
20
- top: 0,
21
- bottom: 0,
22
- left: 0,
23
- right: 0
24
- }
25
- });
26
- doc.on("data", (data) => {
27
- pdfBuffers.push(data);
28
- });
29
- doc.on("end", () => {
30
- resolve(Buffer.concat(pdfBuffers));
31
- });
32
- doc.fontSize(options.fontSize ?? 10);
33
- const topMargin = options.header ? 20 : 0;
34
- const bottomMargin = options.footer ? 20 : 0;
35
- const sidePadding = 20;
36
- const imageHeight = doc.page.height - topMargin - bottomMargin;
37
- if (options.header) {
38
- doc.text(options.header, sidePadding, topMargin / 2 - 6, {
39
- align: "center",
40
- baseline: "top",
41
- width: doc.page.width - 2 * sidePadding,
42
- height: topMargin - 5,
43
- ellipsis: true
44
- }).moveDown(0.5);
45
- }
46
- doc.image(buf, 0, topMargin, {
47
- width: doc.page.width,
48
- height: imageHeight
49
- });
50
- if (options.footer) {
51
- doc.text(options.footer, sidePadding, doc.page.height - bottomMargin / 2 - 6, {
52
- align: "center",
53
- width: doc.page.width - 2 * sidePadding,
54
- height: bottomMargin - 5,
55
- ellipsis: true
56
- });
57
- }
58
- doc.end();
59
- }).catch((e) => {
60
- reject(e);
61
- });
62
- });
63
- };
64
- //# sourceMappingURL=img2pdf.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"img2pdf.js","sourceRoot":"","sources":["../../../src/modules/img2pdf.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- type Options = {
2
- scale?: number;
3
- password?: string;
4
- mime?: "image/png" | "image/jpeg";
5
- };
6
- export declare const pdf2img: (input: Buffer | string | URL, options?: Options) => Promise<{
7
- length: number;
8
- metadata: any;
9
- pages: Buffer[];
10
- }>;
11
- export {};
@@ -1,61 +0,0 @@
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
- };
8
- import { CanvasFactory } from "../canvas.js";
9
- import { getBuffer } from "../utilies.js";
10
- import { getDocument } from "pdfjs-dist/legacy/build/pdf.mjs";
11
- import { fileTypeFromBuffer } from "file-type";
12
- import { fileURLToPath } from "url";
13
- import { resolve, dirname, join, sep } from "path";
14
- import sharp from "sharp";
15
- const __filename = fileURLToPath(import.meta.url);
16
- const __dirname = dirname(__filename);
17
- export const pdf2img = async (input, options = {}) => {
18
- const buffer = await getBuffer(input);
19
- const type = await fileTypeFromBuffer(buffer);
20
- if (type?.mime !== "application/pdf") {
21
- console.error(`ERROR: Provided File is not a PDF.`);
22
- process.exit(1);
23
- }
24
- const pdfjsPath = resolve(__dirname, "..", "..", "node_modules", "pdfjs-dist");
25
- const canvasFactory = new CanvasFactory();
26
- const newoptions = {
27
- password: options.password ?? undefined,
28
- standardFontDataUrl: join(pdfjsPath, `standard_fonts${sep}`),
29
- cMapUrl: join(pdfjsPath, `cmaps${sep}`),
30
- isEvalSupported: false,
31
- CanvasFactory: CanvasFactory,
32
- verbosity: 0,
33
- data: Uint8Array.from(buffer)
34
- };
35
- const pdfDocument = await getDocument(newoptions).promise;
36
- const metadata = await pdfDocument.getMetadata();
37
- const pages = [];
38
- for (let i = 1; i <= pdfDocument.numPages; i++) {
39
- pages.push(await getPage(i));
40
- }
41
- async function getPage(pageNumber) {
42
- const page = await pdfDocument.getPage(pageNumber);
43
- const viewport = page.getViewport({ scale: options.scale ?? 300 / 72 });
44
- const { canvas, context } = canvasFactory.create(viewport.width, viewport.height, true);
45
- await page.render({
46
- canvasContext: context,
47
- viewport
48
- }).promise;
49
- const imageBuffer = canvas.toBuffer();
50
- const processedBuffer = await sharp(imageBuffer)
51
- .toFormat(options.mime === "image/jpeg" ? "jpeg" : "png")
52
- .toBuffer();
53
- return processedBuffer;
54
- }
55
- return {
56
- length: pdfDocument.numPages,
57
- metadata: metadata.info,
58
- pages
59
- };
60
- };
61
- //# sourceMappingURL=pdf2img.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pdf2img.js","sourceRoot":"","sources":["../../../src/modules/pdf2img.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export declare function getBuffer(input: string | URL | Buffer): Promise<Buffer>;
2
- export declare const fetchHtmlFromUrl: (url: string) => Promise<string>;
3
- export declare const readHtmlFromFilePath: (filePath: string) => Promise<string>;
@@ -1,37 +0,0 @@
1
- import { existsSync, readFileSync } from "fs";
2
- export async function getBuffer(input) {
3
- if (input instanceof Buffer) {
4
- return input;
5
- }
6
- return fetch(input.toString())
7
- .then(res => {
8
- if (res.ok) {
9
- return res.arrayBuffer();
10
- }
11
- else {
12
- console.error("ERROR: Failed to Fetch the File");
13
- process.exit(1);
14
- }
15
- })
16
- .then(array => Buffer.from(array))
17
- .catch(() => {
18
- if (existsSync(input.toString())) {
19
- return readFileSync(input.toString());
20
- }
21
- else {
22
- console.error(`ERROR: '${input.toString()}' Not Found`);
23
- process.exit(1);
24
- }
25
- });
26
- }
27
- export const fetchHtmlFromUrl = async (url) => {
28
- const response = await fetch(url);
29
- if (!response.ok) {
30
- throw new Error(`Failed to fetch content from URL: ${url}`);
31
- }
32
- return await response.text();
33
- };
34
- export const readHtmlFromFilePath = async (filePath) => {
35
- return readFileSync(filePath, "utf-8");
36
- };
37
- //# sourceMappingURL=utilies.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utilies.js","sourceRoot":"","sources":["../../src/utilies.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AAY7C,MAAM,CAAC,KAAK,UAAU,SAAS,CAAG,KAA4B;IAC5D,IAAK,KAAK,YAAY,MAAM,EAAG,CAAC;QAC9B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,KAAK,CAAG,KAAK,CAAC,QAAQ,EAAI,CAAE;SAChC,IAAI,CAAG,GAAG,CAAC,EAAE;QACZ,IAAK,GAAG,CAAC,EAAE,EAAG,CAAC;YACb,OAAO,GAAG,CAAC,WAAW,EAAI,CAAA;QAC5B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAG,iCAAiC,CAAE,CAAA;YACnD,OAAO,CAAC,IAAI,CAAG,CAAC,CAAE,CAAA;QACpB,CAAC;IACH,CAAC,CAAE;SACF,IAAI,CAAG,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAG,KAAK,CAAE,CAAE;SACvC,KAAK,CAAG,GAAI,EAAE;QACb,IAAK,UAAU,CAAG,KAAK,CAAC,QAAQ,EAAI,CAAE,EAAG,CAAC;YACxC,OAAO,YAAY,CAAG,KAAK,CAAC,QAAQ,EAAI,CAAE,CAAA;QAC5C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAG,WAAW,KAAK,CAAC,QAAQ,EAAI,aAAa,CAAE,CAAA;YAC5D,OAAO,CAAC,IAAI,CAAG,CAAC,CAAE,CAAA;QACpB,CAAC;IACH,CAAC,CAAE,CAAA;AACP,CAAC;AASD,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAG,GAAW,EAAG,EAAE;IACtD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAG,GAAG,CAAE,CAAA;IACpC,IAAK,CAAC,QAAQ,CAAC,EAAE,EAAG,CAAC;QACnB,MAAM,IAAI,KAAK,CAAG,qCAAqC,GAAG,EAAE,CAAE,CAAA;IAChE,CAAC;IACD,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAI,CAAA;AAChC,CAAC,CAAA;AASD,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAG,QAAgB,EAAG,EAAE;IAC/D,OAAO,YAAY,CAAG,QAAQ,EAAE,OAAO,CAAE,CAAA;AAC3C,CAAC,CAAA"}