@pdfme/converter 0.0.0

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.
Files changed (42) hide show
  1. package/README.md +5 -0
  2. package/dist/cjs/__tests__/index.test.js +189 -0
  3. package/dist/cjs/__tests__/index.test.js.map +1 -0
  4. package/dist/cjs/src/img2pdf.js +91 -0
  5. package/dist/cjs/src/img2pdf.js.map +1 -0
  6. package/dist/cjs/src/index.browser.js +80 -0
  7. package/dist/cjs/src/index.browser.js.map +1 -0
  8. package/dist/cjs/src/index.node.js +67 -0
  9. package/dist/cjs/src/index.node.js.map +1 -0
  10. package/dist/cjs/src/pdf2img.js +35 -0
  11. package/dist/cjs/src/pdf2img.js.map +1 -0
  12. package/dist/cjs/src/pdf2size.js +17 -0
  13. package/dist/cjs/src/pdf2size.js.map +1 -0
  14. package/dist/esm/__tests__/index.test.js +187 -0
  15. package/dist/esm/__tests__/index.test.js.map +1 -0
  16. package/dist/esm/src/img2pdf.js +88 -0
  17. package/dist/esm/src/img2pdf.js.map +1 -0
  18. package/dist/esm/src/index.browser.js +38 -0
  19. package/dist/esm/src/index.browser.js.map +1 -0
  20. package/dist/esm/src/index.node.js +25 -0
  21. package/dist/esm/src/index.node.js.map +1 -0
  22. package/dist/esm/src/pdf2img.js +32 -0
  23. package/dist/esm/src/pdf2img.js.map +1 -0
  24. package/dist/esm/src/pdf2size.js +14 -0
  25. package/dist/esm/src/pdf2size.js.map +1 -0
  26. package/dist/types/__tests__/index.test.d.ts +1 -0
  27. package/dist/types/src/img2pdf.d.ts +12 -0
  28. package/dist/types/src/index.browser.d.ts +8 -0
  29. package/dist/types/src/index.node.d.ts +8 -0
  30. package/dist/types/src/pdf2img.d.ts +17 -0
  31. package/dist/types/src/pdf2size.d.ts +10 -0
  32. package/eslint.config.mjs +22 -0
  33. package/package.json +80 -0
  34. package/src/img2pdf.ts +110 -0
  35. package/src/index.browser.ts +51 -0
  36. package/src/index.node.ts +33 -0
  37. package/src/pdf2img.ts +64 -0
  38. package/src/pdf2size.ts +33 -0
  39. package/src/types.d.ts +1 -0
  40. package/tsconfig.cjs.json +10 -0
  41. package/tsconfig.esm.json +11 -0
  42. package/tsconfig.json +6 -0
package/README.md ADDED
@@ -0,0 +1,5 @@
1
+ ## @pdfme/converter
2
+
3
+ This library provides utility functions for converting PDFs to other formats or converting data—such as Markdown—into PDF(WIP).
4
+
5
+ For the complete pdfme documentation, see [this link](https://pdfme.com/docs/converter).
@@ -0,0 +1,189 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // @ts-ignore
4
+ const generator_1 = require("@pdfme/generator");
5
+ const index_node_js_1 = require("../src/index.node.js");
6
+ describe('pdf2img tests', () => {
7
+ let pdfArrayBuffer;
8
+ beforeAll(async () => {
9
+ const pdf = await (0, generator_1.generate)({
10
+ template: {
11
+ schemas: [
12
+ [
13
+ {
14
+ name: 'field1',
15
+ type: 'text',
16
+ content: 'Type Something...',
17
+ position: { x: 10, y: 20 },
18
+ width: 45,
19
+ height: 10,
20
+ },
21
+ ],
22
+ ],
23
+ basePdf: { width: 210, height: 297, padding: [20, 10, 20, 10] },
24
+ pdfmeVersion: '5.2.16',
25
+ },
26
+ inputs: [{}, {}, {}, {}],
27
+ });
28
+ pdfArrayBuffer = new Uint8Array(pdf.buffer);
29
+ });
30
+ test('Node.js version - returns array of images', async () => {
31
+ const images = await (0, index_node_js_1.pdf2img)(pdfArrayBuffer, { scale: 1 });
32
+ expect(Array.isArray(images)).toBe(true);
33
+ expect(images.length).toBe(4);
34
+ expect(images[0]).toBeInstanceOf(ArrayBuffer);
35
+ expect(images[0].byteLength).toBeGreaterThan(0);
36
+ });
37
+ test('pageNumbers option - should render only specified pages', async () => {
38
+ const images = await (0, index_node_js_1.pdf2img)(pdfArrayBuffer, {
39
+ scale: 1,
40
+ range: { start: 0, end: 1 },
41
+ });
42
+ expect(Array.isArray(images)).toBe(true);
43
+ expect(images.length).toBe(2);
44
+ images.forEach((img) => {
45
+ expect(img).toBeInstanceOf(ArrayBuffer);
46
+ expect(img.byteLength).toBeGreaterThan(0);
47
+ });
48
+ });
49
+ test('invalid PDF input - should throw error', async () => {
50
+ const invalidBuffer = new ArrayBuffer(10);
51
+ await expect((0, index_node_js_1.pdf2img)(invalidBuffer, { scale: 1 })).rejects.toThrow('Invalid PDF');
52
+ });
53
+ test('empty buffer input - should throw error', async () => {
54
+ const emptyBuffer = new ArrayBuffer(0);
55
+ await expect((0, index_node_js_1.pdf2img)(emptyBuffer, { scale: 1 })).rejects.toThrow('The PDF file is empty, i.e. its size is zero by');
56
+ });
57
+ });
58
+ describe('img2pdf tests', () => {
59
+ let jpegImage;
60
+ let pngImage;
61
+ beforeAll(async () => {
62
+ // Create test images using pdf2img for testing
63
+ const pdf = await (0, generator_1.generate)({
64
+ template: {
65
+ schemas: [
66
+ [
67
+ {
68
+ name: 'field1',
69
+ type: 'text',
70
+ content: 'Type Something...',
71
+ position: { x: 10, y: 20 },
72
+ width: 45,
73
+ height: 10,
74
+ },
75
+ ],
76
+ ],
77
+ basePdf: { width: 210, height: 297, padding: [20, 10, 20, 10] },
78
+ pdfmeVersion: '5.2.16',
79
+ },
80
+ inputs: [{}],
81
+ });
82
+ const images = await (0, index_node_js_1.pdf2img)(new Uint8Array(pdf.buffer), { scale: 1 });
83
+ jpegImage = images[0];
84
+ pngImage = images[0]; // Using same image for both tests
85
+ });
86
+ test('converts single image to PDF', async () => {
87
+ const pdf = await (0, index_node_js_1.img2pdf)([jpegImage]);
88
+ expect(pdf).toBeInstanceOf(ArrayBuffer);
89
+ expect(pdf.byteLength).toBeGreaterThan(0);
90
+ });
91
+ test('converts multiple images to single PDF', async () => {
92
+ const pdf = await (0, index_node_js_1.img2pdf)([jpegImage, pngImage]);
93
+ expect(pdf).toBeInstanceOf(ArrayBuffer);
94
+ expect(pdf.byteLength).toBeGreaterThan(0);
95
+ });
96
+ test('handles scale option', async () => {
97
+ const pdf = await (0, index_node_js_1.img2pdf)([jpegImage], { scale: 0.5 });
98
+ expect(pdf.byteLength).toBeGreaterThan(0);
99
+ });
100
+ test('throws error for empty input', async () => {
101
+ await expect((0, index_node_js_1.img2pdf)([])).rejects.toThrow('Input must be a non-empty array');
102
+ });
103
+ test('throws error for invalid image', async () => {
104
+ const invalidImage = new ArrayBuffer(10);
105
+ await expect((0, index_node_js_1.img2pdf)([invalidImage])).rejects.toThrow('Failed to process image');
106
+ });
107
+ test('handles size option', async () => {
108
+ const customSize = { width: 100, height: 150 }; // in millimeters
109
+ const pdf = await (0, index_node_js_1.img2pdf)([jpegImage], { size: customSize });
110
+ expect(pdf).toBeInstanceOf(ArrayBuffer);
111
+ expect(pdf.byteLength).toBeGreaterThan(0);
112
+ });
113
+ test('handles margin option', async () => {
114
+ const margins = [10, 20, 30, 40]; // in millimeters [top, right, bottom, left]
115
+ const pdf = await (0, index_node_js_1.img2pdf)([jpegImage], { margin: margins });
116
+ expect(pdf).toBeInstanceOf(ArrayBuffer);
117
+ expect(pdf.byteLength).toBeGreaterThan(0);
118
+ });
119
+ test('handles both size and margin options', async () => {
120
+ const customSize = { width: 100, height: 150 }; // in millimeters
121
+ const margins = [10, 20, 30, 40]; // in millimeters [top, right, bottom, left]
122
+ const pdf = await (0, index_node_js_1.img2pdf)([jpegImage], {
123
+ size: customSize,
124
+ margin: margins
125
+ });
126
+ expect(pdf).toBeInstanceOf(ArrayBuffer);
127
+ expect(pdf.byteLength).toBeGreaterThan(0);
128
+ });
129
+ test('uses default margin [0,0,0,0] when margin is omitted', async () => {
130
+ // This test verifies the default behavior is maintained
131
+ const pdf1 = await (0, index_node_js_1.img2pdf)([jpegImage]);
132
+ const pdf2 = await (0, index_node_js_1.img2pdf)([jpegImage], { margin: [0, 0, 0, 0] });
133
+ // Both PDFs should have the same size
134
+ expect(pdf1.byteLength).toBe(pdf2.byteLength);
135
+ });
136
+ });
137
+ describe('pdf2size tests', () => {
138
+ let pdfArrayBuffer;
139
+ beforeAll(async () => {
140
+ const pdf = await (0, generator_1.generate)({
141
+ template: {
142
+ schemas: [
143
+ [
144
+ {
145
+ name: 'field1',
146
+ type: 'text',
147
+ content: 'Type Something...',
148
+ position: { x: 10, y: 20 },
149
+ width: 45,
150
+ height: 10,
151
+ },
152
+ ],
153
+ ],
154
+ basePdf: { width: 210, height: 297, padding: [20, 10, 20, 10] },
155
+ pdfmeVersion: '5.2.16',
156
+ },
157
+ inputs: [{}, {}, {}, {}],
158
+ });
159
+ pdfArrayBuffer = new Uint8Array(pdf.buffer);
160
+ });
161
+ test('returns array of page sizes', async () => {
162
+ const sizes = await (0, index_node_js_1.pdf2size)(pdfArrayBuffer, { scale: 1 });
163
+ expect(Array.isArray(sizes)).toBe(true);
164
+ expect(sizes.length).toBe(4);
165
+ sizes.forEach((size) => {
166
+ expect(typeof size.width).toBe('number');
167
+ expect(typeof size.height).toBe('number');
168
+ expect(size.width).toBeGreaterThan(0);
169
+ expect(size.height).toBeGreaterThan(0);
170
+ });
171
+ });
172
+ test('scale option - properly adjusts size', async () => {
173
+ const scale = 0.5;
174
+ const sizes = await (0, index_node_js_1.pdf2size)(pdfArrayBuffer, { scale });
175
+ sizes.forEach((size) => {
176
+ expect(size.width).toBeLessThan(200);
177
+ expect(size.height).toBeLessThan(300);
178
+ });
179
+ });
180
+ test('invalid PDF input - should throw error', async () => {
181
+ const invalidBuffer = new ArrayBuffer(10);
182
+ await expect((0, index_node_js_1.pdf2size)(invalidBuffer, { scale: 1 })).rejects.toThrow('Invalid PDF');
183
+ });
184
+ test('empty buffer input - should throw error', async () => {
185
+ const emptyBuffer = new ArrayBuffer(0);
186
+ await expect((0, index_node_js_1.pdf2size)(emptyBuffer, { scale: 1 })).rejects.toThrow('The PDF file is empty, i.e. its size is zero by');
187
+ });
188
+ });
189
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../__tests__/index.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.img2pdf = img2pdf;
4
+ const pdf_lib_1 = require("@pdfme/pdf-lib");
5
+ const common_1 = require("@pdfme/common");
6
+ function detectImageType(buffer) {
7
+ const bytes = new Uint8Array(buffer);
8
+ if (bytes.length >= 2 && bytes[0] === 0xff && bytes[1] === 0xd8) {
9
+ return 'jpeg';
10
+ }
11
+ if (bytes.length >= 8 &&
12
+ bytes[0] === 0x89 &&
13
+ bytes[1] === 0x50 &&
14
+ bytes[2] === 0x4e &&
15
+ bytes[3] === 0x47 &&
16
+ bytes[4] === 0x0d &&
17
+ bytes[5] === 0x0a &&
18
+ bytes[6] === 0x1a &&
19
+ bytes[7] === 0x0a) {
20
+ return 'png';
21
+ }
22
+ return 'unknown';
23
+ }
24
+ async function img2pdf(imgs, options = {}) {
25
+ try {
26
+ const { scale = 1, size, margin = [0, 0, 0, 0] } = options;
27
+ if (!Array.isArray(imgs) || imgs.length === 0) {
28
+ throw new Error('Input must be a non-empty array of image buffers');
29
+ }
30
+ const doc = await pdf_lib_1.PDFDocument.create();
31
+ for (const img of imgs) {
32
+ try {
33
+ let image;
34
+ const type = detectImageType(img);
35
+ if (type === 'jpeg') {
36
+ image = await doc.embedJpg(img);
37
+ }
38
+ else if (type === 'png') {
39
+ image = await doc.embedPng(img);
40
+ }
41
+ else {
42
+ try {
43
+ image = await doc.embedJpg(img);
44
+ }
45
+ catch {
46
+ image = await doc.embedPng(img);
47
+ }
48
+ }
49
+ const page = doc.addPage();
50
+ const { width: imgWidth, height: imgHeight } = image.scale(scale);
51
+ // Set page size based on size option or image dimensions
52
+ const pageWidth = size ? (0, common_1.mm2pt)(size.width) : imgWidth;
53
+ const pageHeight = size ? (0, common_1.mm2pt)(size.height) : imgHeight;
54
+ page.setSize(pageWidth, pageHeight);
55
+ // Convert margins from mm to points
56
+ const [topMargin, rightMargin, bottomMargin, leftMargin] = margin.map(common_1.mm2pt);
57
+ // Calculate available space for the image after applying margins
58
+ const availableWidth = pageWidth - leftMargin - rightMargin;
59
+ const availableHeight = pageHeight - topMargin - bottomMargin;
60
+ // Calculate scaling to fit image within available space while maintaining aspect ratio
61
+ const widthRatio = availableWidth / imgWidth;
62
+ const heightRatio = availableHeight / imgHeight;
63
+ const ratio = Math.min(widthRatio, heightRatio, 1); // Don't upscale images
64
+ // Calculate final image dimensions and position
65
+ const finalWidth = imgWidth * ratio;
66
+ const finalHeight = imgHeight * ratio;
67
+ const x = leftMargin + (availableWidth - finalWidth) / 2; // Center horizontally
68
+ const y = bottomMargin + (availableHeight - finalHeight) / 2; // Center vertically
69
+ page.drawImage(image, {
70
+ x,
71
+ y,
72
+ width: finalWidth,
73
+ height: finalHeight,
74
+ });
75
+ }
76
+ catch (error) {
77
+ throw new Error(`Failed to process image: ${error.message}`);
78
+ }
79
+ }
80
+ const pdfUint8Array = await doc.save();
81
+ // Create a new ArrayBuffer from the Uint8Array to ensure we return only ArrayBuffer
82
+ const buffer = new ArrayBuffer(pdfUint8Array.byteLength);
83
+ const view = new Uint8Array(buffer);
84
+ view.set(pdfUint8Array);
85
+ return buffer;
86
+ }
87
+ catch (error) {
88
+ throw new Error(`[@pdfme/converter] img2pdf failed: ${error.message}`);
89
+ }
90
+ }
91
+ //# sourceMappingURL=img2pdf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"img2pdf.js","sourceRoot":"","sources":["../../../src/img2pdf.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.img2pdf = exports.pdf2size = exports.pdf2img = void 0;
40
+ const pdfjsLib = __importStar(require("pdfjs-dist"));
41
+ // @ts-expect-error - PDFJSWorker import is not properly typed but required for functionality
42
+ const pdf_worker_entry_js_1 = __importDefault(require("pdfjs-dist/build/pdf.worker.entry.js"));
43
+ const pdf2img_js_1 = require("./pdf2img.js");
44
+ const pdf2size_js_1 = require("./pdf2size.js");
45
+ pdfjsLib.GlobalWorkerOptions.workerSrc = pdf_worker_entry_js_1.default;
46
+ function dataURLToArrayBuffer(dataURL) {
47
+ // Split out the actual base64 string from the data URL scheme
48
+ const base64String = dataURL.split(',')[1];
49
+ // Decode the Base64 string to get the binary data
50
+ const byteString = atob(base64String);
51
+ // Create a typed array from the binary string
52
+ const arrayBuffer = new ArrayBuffer(byteString.length);
53
+ const uintArray = new Uint8Array(arrayBuffer);
54
+ for (let i = 0; i < byteString.length; i++) {
55
+ uintArray[i] = byteString.charCodeAt(i);
56
+ }
57
+ return arrayBuffer;
58
+ }
59
+ const pdf2img = async (pdf, options = {}) => (0, pdf2img_js_1.pdf2img)(pdf, options, {
60
+ getDocument: (pdf) => pdfjsLib.getDocument({ data: pdf, isEvalSupported: false }).promise,
61
+ createCanvas: (width, height) => {
62
+ const canvas = document.createElement('canvas');
63
+ canvas.width = width;
64
+ canvas.height = height;
65
+ return canvas;
66
+ },
67
+ canvasToArrayBuffer: (canvas, imageType) => {
68
+ // Using type assertion to handle the canvas method
69
+ const dataUrl = canvas.toDataURL(`image/${imageType}`);
70
+ return dataURLToArrayBuffer(dataUrl);
71
+ },
72
+ });
73
+ exports.pdf2img = pdf2img;
74
+ const pdf2size = async (pdf, options = {}) => (0, pdf2size_js_1.pdf2size)(pdf, options, {
75
+ getDocument: (pdf) => pdfjsLib.getDocument({ data: pdf, isEvalSupported: false }).promise,
76
+ });
77
+ exports.pdf2size = pdf2size;
78
+ var img2pdf_js_1 = require("./img2pdf.js");
79
+ Object.defineProperty(exports, "img2pdf", { enumerable: true, get: function () { return img2pdf_js_1.img2pdf; } });
80
+ //# sourceMappingURL=index.browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.browser.js","sourceRoot":"","sources":["../../../src/index.browser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAAuC;AACvC,6FAA6F;AAC7F,+FAA+D;AAC/D,6CAAmE;AACnE,+CAAuE;AAEvE,QAAQ,CAAC,mBAAmB,CAAC,SAAS,GAAG,6BAAgC,CAAC;AAE1E,SAAS,oBAAoB,CAAC,OAAe;IAC3C,8DAA8D;IAC9D,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3C,kDAAkD;IAClD,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;IAEtC,8CAA8C;IAC9C,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;IAE9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,SAAS,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAEM,MAAM,OAAO,GAAG,KAAK,EAC1B,GAA6B,EAC7B,UAA0B,EAAE,EACJ,EAAE,CAC1B,IAAA,oBAAQ,EAAC,GAAG,EAAE,OAAO,EAAE;IACrB,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO;IACzF,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,mBAAmB,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE;QACzC,mDAAmD;QACnD,MAAM,OAAO,GAAI,MAA4B,CAAC,SAAS,CAAC,SAAS,SAAS,EAAE,CAAC,CAAC;QAC9E,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;CACF,CAAC,CAAC;AAjBQ,QAAA,OAAO,WAiBf;AAEE,MAAM,QAAQ,GAAG,KAAK,EAAE,GAA6B,EAAE,UAA2B,EAAE,EAAE,EAAE,CAC7F,IAAA,sBAAS,EAAC,GAAG,EAAE,OAAO,EAAE;IACtB,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO;CAC1F,CAAC,CAAC;AAHQ,QAAA,QAAQ,YAGhB;AAEL,2CAAuC;AAA9B,qGAAA,OAAO,OAAA"}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.img2pdf = exports.pdf2size = exports.pdf2img = void 0;
40
+ const pdfjsLib = __importStar(require("pdfjs-dist/legacy/build/pdf"));
41
+ // @ts-expect-error - PDFJSWorker import is not properly typed but required for functionality
42
+ const pdf_worker_js_1 = __importDefault(require("pdfjs-dist/legacy/build/pdf.worker.js"));
43
+ const canvas_1 = require("canvas");
44
+ const pdf2img_js_1 = require("./pdf2img.js");
45
+ const pdf2size_js_1 = require("./pdf2size.js");
46
+ pdfjsLib.GlobalWorkerOptions.workerSrc = pdf_worker_js_1.default;
47
+ const pdf2img = async (pdf, options = {}) => (0, pdf2img_js_1.pdf2img)(pdf, options, {
48
+ getDocument: (pdf) => pdfjsLib.getDocument({ data: pdf, isEvalSupported: false }).promise,
49
+ createCanvas: (width, height) => (0, canvas_1.createCanvas)(width, height),
50
+ canvasToArrayBuffer: (canvas) => {
51
+ // Using a more specific type for the canvas from the 'canvas' package
52
+ const nodeCanvas = canvas;
53
+ // Get buffer from the canvas - using the synchronous version without parameters
54
+ // This will use the default PNG format
55
+ const buffer = nodeCanvas.toBuffer();
56
+ // Convert to ArrayBuffer
57
+ return new Uint8Array(buffer).buffer;
58
+ },
59
+ });
60
+ exports.pdf2img = pdf2img;
61
+ const pdf2size = async (pdf, options = {}) => (0, pdf2size_js_1.pdf2size)(pdf, options, {
62
+ getDocument: (pdf) => pdfjsLib.getDocument({ data: pdf, isEvalSupported: false }).promise,
63
+ });
64
+ exports.pdf2size = pdf2size;
65
+ var img2pdf_js_1 = require("./img2pdf.js");
66
+ Object.defineProperty(exports, "img2pdf", { enumerable: true, get: function () { return img2pdf_js_1.img2pdf; } });
67
+ //# sourceMappingURL=index.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.node.js","sourceRoot":"","sources":["../../../src/index.node.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sEAAwD;AACxD,6FAA6F;AAC7F,0FAAgE;AAChE,mCAAsC;AACtC,6CAAmE;AACnE,+CAAuE;AAEvE,QAAQ,CAAC,mBAAmB,CAAC,SAAS,GAAG,uBAAgC,CAAC;AAEnE,MAAM,OAAO,GAAG,KAAK,EAC1B,GAA6B,EAC7B,UAA0B,EAAE,EACJ,EAAE,CAC1B,IAAA,oBAAQ,EAAC,GAAG,EAAE,OAAO,EAAE;IACrB,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO;IACzF,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,IAAA,qBAAY,EAAC,KAAK,EAAE,MAAM,CAAiC;IAC5F,mBAAmB,EAAE,CAAC,MAAM,EAAE,EAAE;QAC9B,sEAAsE;QACtE,MAAM,UAAU,GAAG,MAA4C,CAAC;QAChE,gFAAgF;QAChF,uCAAuC;QACvC,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;QACrC,yBAAyB;QACzB,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IACvC,CAAC;CACF,CAAC,CAAC;AAhBQ,QAAA,OAAO,WAgBf;AAEE,MAAM,QAAQ,GAAG,KAAK,EAAE,GAA6B,EAAE,UAA2B,EAAE,EAAE,EAAE,CAC7F,IAAA,sBAAS,EAAC,GAAG,EAAE,OAAO,EAAE;IACtB,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO;CAC1F,CAAC,CAAC;AAHQ,QAAA,QAAQ,YAGhB;AAEL,2CAAuC;AAA9B,qGAAA,OAAO,OAAA"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pdf2img = pdf2img;
4
+ async function pdf2img(pdf, options = {}, env) {
5
+ try {
6
+ const { scale = 1, imageType = 'jpeg', range = {} } = options;
7
+ const { start = 0, end = Infinity } = range;
8
+ const { getDocument, createCanvas, canvasToArrayBuffer } = env;
9
+ const pdfDoc = await getDocument(pdf);
10
+ const numPages = pdfDoc.numPages;
11
+ const startPage = Math.max(start + 1, 1);
12
+ const endPage = Math.min(end + 1, numPages);
13
+ const results = [];
14
+ for (let pageNum = startPage; pageNum <= endPage; pageNum++) {
15
+ const page = await pdfDoc.getPage(pageNum);
16
+ const viewport = page.getViewport({ scale });
17
+ const canvas = createCanvas(viewport.width, viewport.height);
18
+ if (!canvas) {
19
+ throw new Error('Failed to create canvas');
20
+ }
21
+ const context = canvas.getContext('2d');
22
+ if (!context) {
23
+ throw new Error('Failed to get canvas context');
24
+ }
25
+ await page.render({ canvasContext: context, viewport }).promise;
26
+ const arrayBuffer = canvasToArrayBuffer(canvas, imageType);
27
+ results.push(arrayBuffer);
28
+ }
29
+ return results;
30
+ }
31
+ catch (error) {
32
+ throw new Error(`[@pdfme/converter] pdf2img failed: ${error.message}`);
33
+ }
34
+ }
35
+ //# sourceMappingURL=pdf2img.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf2img.js","sourceRoot":"","sources":["../../../src/pdf2img.ts"],"names":[],"mappings":";;AAqBA,0BA0CC;AA1CM,KAAK,UAAU,OAAO,CAC3B,GAA6B,EAC7B,UAA0B,EAAE,EAC5B,GAAgB;IAEhB,IAAI,CAAC;QACH,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,SAAS,GAAG,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;QAC9D,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC;QAE5C,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,mBAAmB,EAAE,GAAG,GAAG,CAAC;QAE/D,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAEjC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;QAE5C,MAAM,OAAO,GAAkB,EAAE,CAAC;QAElC,KAAK,IAAI,OAAO,GAAG,SAAS,EAAE,OAAO,IAAI,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;YAC5D,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAE7C,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC7D,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAC7C,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAA6B,CAAC;YACpE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAClD,CAAC;YAED,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC;YAChE,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5B,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,sCAAuC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;IACpF,CAAC;AACH,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pdf2size = pdf2size;
4
+ const common_1 = require("@pdfme/common");
5
+ async function pdf2size(pdf, options = {}, env) {
6
+ const { scale = 1 } = options;
7
+ const { getDocument } = env;
8
+ const pdfDoc = await getDocument(pdf);
9
+ const promises = Promise.all(new Array(pdfDoc.numPages).fill('').map(async (_, i) => {
10
+ return await pdfDoc.getPage(i + 1).then((page) => {
11
+ const { height, width } = page.getViewport({ scale, rotation: 0 });
12
+ return { height: (0, common_1.pt2mm)(height), width: (0, common_1.pt2mm)(width) };
13
+ });
14
+ }));
15
+ return promises;
16
+ }
17
+ //# sourceMappingURL=pdf2size.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf2size.js","sourceRoot":"","sources":["../../../src/pdf2size.ts"],"names":[],"mappings":";;AAWA,4BAqBC;AA/BD,0CAA4C;AAUrC,KAAK,UAAU,QAAQ,CAC5B,GAA6B,EAC7B,UAA2B,EAAE,EAC7B,GAAgB;IAEhB,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC;IAC9B,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;IAE5B,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;IAEtC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAC1B,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QACrD,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YAC/C,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;YAEnE,OAAO,EAAE,MAAM,EAAE,IAAA,cAAK,EAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAA,cAAK,EAAC,KAAK,CAAC,EAAE,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC"}