@iqx-limited/quick-pdf 1.1.3 → 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,7 +1,7 @@
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`, `PDFKit`, and `pdfjs-dist` 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
 
@@ -103,6 +103,6 @@ pdf2img(input: Buffer | string | URL, options: Options = {})
103
103
 
104
104
  | Property | Type | Description |
105
105
  |-----------|----------------------------------------------------------------------|--------------------------------------------------|
106
- | `scale` | `number` | Scaling factor for rendering the PDF pages. Default is 1. |
106
+ | `quality` | `number` | Quality for rendering the PDF pages, not applicable for PNG. Default is 100. |
107
107
  | `password`| `string` | Optional password for decrypting password-protected PDFs. |
108
- | `mime` | `string` | The mime type to output - "image/png" | "image/jpeg". Default is "image/png". |
108
+ | `type` | `string` | The mime type to output - "png" | "jpeg" | "webp". Default is "png". |
@@ -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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"}
@@ -1,11 +1,11 @@
1
1
  type Options = {
2
- scale?: number;
2
+ quality?: number;
3
3
  password?: string;
4
- mime?: "image/png" | "image/jpeg" | "image/webp";
4
+ type?: "png" | "jpeg" | "webp";
5
5
  };
6
6
  export declare const pdf2img: (input: Buffer | string | URL, options?: Options) => Promise<{
7
- length: number;
7
+ length: any;
8
8
  metadata: any;
9
- pages: Buffer[];
9
+ pages: Uint8Array[];
10
10
  }>;
11
11
  export {};
@@ -1,75 +1,112 @@
1
- const originalLog = console.log;
2
- console.log = function (message, ...args) {
3
- if (message &&
4
- (message ===
5
- `Warning: applyPath2DToCanvasRenderingContext: "TypeError: Cannot assign to read only property 'clip' of object '#<CanvasRenderingContext2D>'".`)) {
6
- return;
7
- }
8
- originalLog.apply(console, [message, ...args]);
9
- };
10
- import { CanvasFactory } from "../canvas.js";
11
1
  import { getBuffer } from "../utilies.js";
12
- import { getDocument } from "pdfjs-dist/legacy/build/pdf.mjs";
13
2
  import { fileTypeFromBuffer } from "file-type";
14
- import { fileURLToPath } from "url";
15
- import { resolve, dirname, join, sep } from "path";
16
- import sharp from "sharp";
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";
17
7
  const __filename = fileURLToPath(import.meta.url);
18
8
  const __dirname = dirname(__filename);
19
9
  export const pdf2img = async (input, options = {}) => {
20
- const buffer = await getBuffer(input);
21
- const type = await fileTypeFromBuffer(buffer);
22
- if (type?.mime !== "application/pdf") {
23
- console.error(`ERROR: Provided File is not a PDF.`);
24
- process.exit(1);
10
+ const browser = await puppeteer.launch({
11
+ browser: "firefox",
12
+ headless: true,
13
+ });
14
+ const page = await browser.newPage();
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);
25
23
  }
26
- const pdfjsPath = resolve(__dirname, "..", "..", "node_modules", "pdfjs-dist");
27
- const canvasFactory = new CanvasFactory();
28
- const newoptions = {
29
- password: options.password ?? undefined,
30
- standardFontDataUrl: join(pdfjsPath, `standard_fonts${sep}`),
31
- cMapUrl: join(pdfjsPath, `cmaps${sep}`),
32
- isEvalSupported: false,
33
- CanvasFactory: CanvasFactory,
34
- verbosity: 0,
35
- data: Uint8Array.from(buffer)
36
- };
37
- const pdfDocument = await getDocument(newoptions).promise;
38
- const metadata = await pdfDocument.getMetadata();
39
- const pages = [];
40
- for (let i = 1; i <= pdfDocument.numPages; i++) {
41
- pages.push(await getPage(i));
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");
42
37
  }
43
- async function getPage(pageNumber) {
44
- const page = await pdfDocument.getPage(pageNumber);
45
- const viewport = page.getViewport({ scale: options.scale ?? 300 / 72 });
46
- const { canvas, context } = canvasFactory.create(viewport.width, viewport.height, true);
47
- await page.render({
48
- canvasContext: context,
49
- viewport
50
- }).promise;
51
- const quality = options.mime === "image/png" ? undefined : 100;
52
- let imageBuffer = undefined;
53
- if (options.mime) {
54
- if (options.mime === "image/png") {
55
- imageBuffer = canvas.toBuffer("image/png");
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 = [];
54
+ const pageCount = await page.evaluate(() => {
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
75
+ });
76
+ for (let i = 1; i <= pageCount; i++) {
77
+ await page.evaluate((pageNum) => {
78
+ if (window.PDFViewerApplication) {
79
+ window.PDFViewerApplication.page = pageNum;
56
80
  }
57
- else {
58
- imageBuffer = canvas.toBuffer(options.mime, quality);
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
59
95
  }
96
+ };
97
+ if (options.type && options.type !== "png") {
98
+ screenshotOptions.quality = options.quality ?? 100;
60
99
  }
61
- else {
62
- imageBuffer = canvas.toBuffer("image/png");
63
- }
64
- const processedBuffer = await sharp(imageBuffer)
65
- .toFormat(options.mime === "image/jpeg" ? "jpeg" : "png")
66
- .toBuffer();
67
- return processedBuffer;
100
+ imageBuffers.push(await page.screenshot(screenshotOptions));
101
+ }
102
+ if (tempFile) {
103
+ await unlink(path);
68
104
  }
105
+ await browser.close();
69
106
  return {
70
- length: pdfDocument.numPages,
107
+ length: pageCount,
71
108
  metadata: metadata.info,
72
- pages
109
+ pages: imageBuffers
73
110
  };
74
111
  };
75
112
  //# sourceMappingURL=pdf2img.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pdf2img.js","sourceRoot":"","sources":["../../src/modules/pdf2img.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAA;AAC/B,OAAO,CAAC,GAAG,GAAG,UAAW,OAAO,EAAE,GAAG,IAAI;IACvC,IACE,OAAO;QACP,CACE,OAAO;YACP,gJAAgJ,CACjJ,EACD,CAAC;QACD,OAAM;IACR,CAAC;IAGD,WAAW,CAAC,KAAK,CAAG,OAAO,EAAE,CAAE,OAAO,EAAE,GAAG,IAAI,CAAE,CAAE,CAAA;AACrD,CAAC,CAAA;AAED,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAClD,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,UAAU,GAAG,aAAa,CAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAE,CAAA;AACpD,MAAM,SAAS,GAAG,OAAO,CAAG,UAAU,CAAE,CAAA;AA6BxC,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAC1B,KAA4B,EAC5B,UAAmB,EAAG,EACtB,EAAE;IAEF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAG,KAAK,CAAE,CAAA;IAGxC,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAG,MAAM,CAAE,CAAA;IAChD,IAAK,IAAI,EAAE,IAAI,KAAK,iBAAiB,EAAG,CAAC;QACvC,OAAO,CAAC,KAAK,CAAG,oCAAoC,CAAE,CAAA;QACtD,OAAO,CAAC,IAAI,CAAG,CAAC,CAAE,CAAA;IACpB,CAAC;IAGD,MAAM,SAAS,GAAG,OAAO,CAAG,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,CAAE,CAAA;IAGjF,MAAM,aAAa,GAAG,IAAI,aAAa,EAAI,CAAA;IAG3C,MAAM,UAAU,GAA2B;QACzC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,SAAS;QACvC,mBAAmB,EAAE,IAAI,CAAG,SAAS,EAAE,iBAAiB,GAAG,EAAE,CAAE;QAC/D,OAAO,EAAE,IAAI,CAAG,SAAS,EAAE,QAAQ,GAAG,EAAE,CAAE;QAC1C,eAAe,EAAE,KAAK;QACtB,aAAa,EAAE,aAAa;QAC5B,SAAS,EAAE,CAAC;QACZ,IAAI,EAAE,UAAU,CAAC,IAAI,CAAG,MAAM,CAAE;KACjC,CAAA;IAGD,MAAM,WAAW,GAAG,MAAM,WAAW,CAAG,UAAU,CAAE,CAAC,OAAO,CAAA;IAG5D,MAAM,QAAQ,GAAQ,MAAM,WAAW,CAAC,WAAW,EAAI,CAAA;IAEvD,MAAM,KAAK,GAAG,EAAG,CAAA;IAEjB,KAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAG,CAAC;QACjD,KAAK,CAAC,IAAI,CAAG,MAAM,OAAO,CAAG,CAAC,CAAE,CAAE,CAAA;IACpC,CAAC;IAGD,KAAK,UAAU,OAAO,CAAG,UAAkB;QACzC,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,OAAO,CAAG,UAAU,CAAE,CAAA;QAGrD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAG,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,GAAG,EAAE,EAAE,CAAE,CAAA;QAG1E,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC,MAAM,CAC9C,QAAQ,CAAC,KAAK,EACd,QAAQ,CAAC,MAAM,EACf,IAAI,CACL,CAAA;QAGD,MAAM,IAAI,CAAC,MAAM,CAAG;YAClB,aAAa,EAAE,OAAc;YAC7B,QAAQ;SACT,CAAE,CAAC,OAAO,CAAA;QAEX,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAA;QAC9D,IAAI,WAAW,GAAuB,SAAS,CAAA;QAC/C,IAAK,OAAO,CAAC,IAAI,EAAG,CAAC;YACnB,IAAK,OAAO,CAAC,IAAI,KAAK,WAAW,EAAG,CAAC;gBACnC,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAG,WAAW,CAAE,CAAA;YAC/C,CAAC;iBAAM,CAAC;gBACN,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAG,OAAO,CAAC,IAAK,EAAE,OAAO,CAAE,CAAA;YAC1D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAG,WAAW,CAAE,CAAA;QAC/C,CAAC;QAED,MAAM,eAAe,GAAG,MAAM,KAAK,CAAG,WAAW,CAAE;aAChD,QAAQ,CAAG,OAAO,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAE;aAC3D,QAAQ,EAAI,CAAA;QAEf,OAAO,eAAe,CAAA;IACxB,CAAC;IAGD,OAAO;QACL,MAAM,EAAE,WAAW,CAAC,QAAQ;QAC5B,QAAQ,EAAE,QAAQ,CAAC,IAAI;QACvB,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/canvas.ts","../src/index.ts","../src/utilies.ts","../src/modules/html2pdf.ts","../src/modules/img2pdf.ts","../src/modules/pdf2img.ts"],"version":"5.6.3"}
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.3",
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",
@@ -34,21 +35,17 @@
34
35
  },
35
36
  "engineStrict": true,
36
37
  "dependencies": {
37
- "@napi-rs/canvas": "^0.1.62",
38
38
  "file-type": "^19.6.0",
39
39
  "html-validate": "^8.25.0",
40
40
  "image-size": "^1.1.1",
41
41
  "path2d-polyfill": "^3.1.3",
42
- "pdfjs-dist": "^4.8.69",
43
42
  "pdfkit": "^0.15.1",
44
- "playwright": "^1.49.0",
45
- "semver": "^7.6.3",
46
- "sharp": "^0.33.5"
43
+ "puppeteer": "^23.9.0",
44
+ "semver": "^7.6.3"
47
45
  },
48
46
  "devDependencies": {
49
47
  "@stylistic/eslint-plugin": "^2.11.0",
50
48
  "@types/node": "^22.9.0",
51
- "@types/pdfjs-dist": "2.10.377",
52
49
  "@types/pdfkit": "^0.13.5",
53
50
  "@types/semver": "^7.5.8",
54
51
  "eslint": "^9.15.0",
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"}