n8n-nodes-simple-pdf-splitter 1.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.
- package/dist/nodes/PdfSplitter/PdfSplitter.node.d.ts +6 -0
- package/dist/nodes/PdfSplitter/PdfSplitter.node.d.ts.map +1 -0
- package/dist/nodes/PdfSplitter/PdfSplitter.node.js +145 -0
- package/dist/nodes/PdfSplitter/PdfSplitter.node.js.map +1 -0
- package/dist/nodes/PdfSplitter/pdf-splitter.svg +14 -0
- package/index.js +2 -0
- package/package.json +44 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
|
|
2
|
+
export declare class PdfSplitter implements INodeType {
|
|
3
|
+
description: INodeTypeDescription;
|
|
4
|
+
execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=PdfSplitter.node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PdfSplitter.node.d.ts","sourceRoot":"","sources":["../../../src/nodes/PdfSplitter/PdfSplitter.node.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,oBAAoB,EAEpB,MAAM,cAAc,CAAC;AAGtB,qBAAa,WAAY,YAAW,SAAS;IAC5C,WAAW,EAAE,oBAAoB,CAqD/B;IAEI,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;CAwFvE"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PdfSplitter = void 0;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
const pdf_lib_1 = require("pdf-lib");
|
|
6
|
+
class PdfSplitter {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.description = {
|
|
9
|
+
displayName: 'PDF Splitter',
|
|
10
|
+
name: 'pdfSplitter',
|
|
11
|
+
icon: 'file:pdf-splitter.svg',
|
|
12
|
+
group: ['transform'],
|
|
13
|
+
version: 1,
|
|
14
|
+
description: 'Splits a PDF into individual pages, outputting one item per page',
|
|
15
|
+
defaults: {
|
|
16
|
+
name: 'PDF Splitter',
|
|
17
|
+
},
|
|
18
|
+
inputs: ['main'],
|
|
19
|
+
outputs: ['main'],
|
|
20
|
+
properties: [
|
|
21
|
+
{
|
|
22
|
+
displayName: 'Binary Property',
|
|
23
|
+
name: 'binaryPropertyName',
|
|
24
|
+
type: 'string',
|
|
25
|
+
default: 'data',
|
|
26
|
+
required: true,
|
|
27
|
+
description: 'Name of the binary property that contains the PDF file',
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
displayName: 'Output Binary Property',
|
|
31
|
+
name: 'outputBinaryPropertyName',
|
|
32
|
+
type: 'string',
|
|
33
|
+
default: 'data',
|
|
34
|
+
description: 'Name of the binary property to use in the output items',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
displayName: 'Output File Name Prefix',
|
|
38
|
+
name: 'fileNamePrefix',
|
|
39
|
+
type: 'string',
|
|
40
|
+
default: '',
|
|
41
|
+
description: 'Prefix for output file names. Leave empty to use the original file name.',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
displayName: 'Page Range',
|
|
45
|
+
name: 'pageRange',
|
|
46
|
+
type: 'string',
|
|
47
|
+
default: '',
|
|
48
|
+
description: 'Optional page range to extract (e.g. "1-3,5,7-9"). Leave empty to split all pages. Pages are 1-indexed.',
|
|
49
|
+
placeholder: '1-3,5,7-9',
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
displayName: 'Include Page Metadata',
|
|
53
|
+
name: 'includePageMetadata',
|
|
54
|
+
type: 'boolean',
|
|
55
|
+
default: true,
|
|
56
|
+
description: 'Whether to include page number and total page count in the output JSON',
|
|
57
|
+
},
|
|
58
|
+
],
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
async execute() {
|
|
62
|
+
var _a, _b, _c;
|
|
63
|
+
const items = this.getInputData();
|
|
64
|
+
const returnData = [];
|
|
65
|
+
for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
|
|
66
|
+
const binaryPropertyName = this.getNodeParameter('binaryPropertyName', itemIndex, 'data');
|
|
67
|
+
const outputBinaryPropertyName = this.getNodeParameter('outputBinaryPropertyName', itemIndex, 'data');
|
|
68
|
+
const fileNamePrefix = this.getNodeParameter('fileNamePrefix', itemIndex, '');
|
|
69
|
+
const pageRangeInput = this.getNodeParameter('pageRange', itemIndex, '');
|
|
70
|
+
const includePageMetadata = this.getNodeParameter('includePageMetadata', itemIndex, true);
|
|
71
|
+
const binaryData = (_a = items[itemIndex].binary) === null || _a === void 0 ? void 0 : _a[binaryPropertyName];
|
|
72
|
+
if (!binaryData) {
|
|
73
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `No binary data found on property "${binaryPropertyName}"`, { itemIndex });
|
|
74
|
+
}
|
|
75
|
+
if (binaryData.mimeType !== 'application/pdf' && !((_b = binaryData.fileName) === null || _b === void 0 ? void 0 : _b.endsWith('.pdf'))) {
|
|
76
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Binary property "${binaryPropertyName}" does not appear to be a PDF file`, { itemIndex });
|
|
77
|
+
}
|
|
78
|
+
const pdfBuffer = await this.helpers.getBinaryDataBuffer(itemIndex, binaryPropertyName);
|
|
79
|
+
const originalPdf = await pdf_lib_1.PDFDocument.load(pdfBuffer);
|
|
80
|
+
const totalPages = originalPdf.getPageCount();
|
|
81
|
+
const originalFileName = (_c = binaryData.fileName) !== null && _c !== void 0 ? _c : 'document.pdf';
|
|
82
|
+
const baseName = originalFileName.replace(/\.pdf$/i, '');
|
|
83
|
+
const prefix = fileNamePrefix || baseName;
|
|
84
|
+
// Parse page range
|
|
85
|
+
const pageIndices = parsePageRange(pageRangeInput, totalPages);
|
|
86
|
+
for (const pageIndex of pageIndices) {
|
|
87
|
+
const singlePagePdf = await pdf_lib_1.PDFDocument.create();
|
|
88
|
+
const [copiedPage] = await singlePagePdf.copyPages(originalPdf, [pageIndex]);
|
|
89
|
+
singlePagePdf.addPage(copiedPage);
|
|
90
|
+
const pdfBytes = await singlePagePdf.save();
|
|
91
|
+
const pageNumber = pageIndex + 1;
|
|
92
|
+
const outputFileName = `${prefix}_page_${pageNumber}.pdf`;
|
|
93
|
+
const outputBinary = await this.helpers.prepareBinaryData(Buffer.from(pdfBytes), outputFileName, 'application/pdf');
|
|
94
|
+
const jsonData = {
|
|
95
|
+
...items[itemIndex].json,
|
|
96
|
+
};
|
|
97
|
+
if (includePageMetadata) {
|
|
98
|
+
jsonData.pageNumber = pageNumber;
|
|
99
|
+
jsonData.totalPages = totalPages;
|
|
100
|
+
jsonData.fileName = outputFileName;
|
|
101
|
+
jsonData.sourceFile = originalFileName;
|
|
102
|
+
}
|
|
103
|
+
returnData.push({
|
|
104
|
+
json: jsonData,
|
|
105
|
+
binary: {
|
|
106
|
+
[outputBinaryPropertyName]: outputBinary,
|
|
107
|
+
},
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return [returnData];
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
exports.PdfSplitter = PdfSplitter;
|
|
115
|
+
function parsePageRange(rangeStr, totalPages) {
|
|
116
|
+
if (!rangeStr.trim()) {
|
|
117
|
+
// Return all pages
|
|
118
|
+
return Array.from({ length: totalPages }, (_, i) => i);
|
|
119
|
+
}
|
|
120
|
+
const indices = new Set();
|
|
121
|
+
const parts = rangeStr.split(',');
|
|
122
|
+
for (const part of parts) {
|
|
123
|
+
const trimmed = part.trim();
|
|
124
|
+
if (trimmed.includes('-')) {
|
|
125
|
+
const [startStr, endStr] = trimmed.split('-');
|
|
126
|
+
const start = parseInt(startStr.trim(), 10);
|
|
127
|
+
const end = parseInt(endStr.trim(), 10);
|
|
128
|
+
if (isNaN(start) || isNaN(end) || start < 1 || end > totalPages || start > end) {
|
|
129
|
+
throw new Error(`Invalid page range "${trimmed}". Pages must be between 1 and ${totalPages}.`);
|
|
130
|
+
}
|
|
131
|
+
for (let i = start; i <= end; i++) {
|
|
132
|
+
indices.add(i - 1); // Convert to 0-indexed
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
const page = parseInt(trimmed, 10);
|
|
137
|
+
if (isNaN(page) || page < 1 || page > totalPages) {
|
|
138
|
+
throw new Error(`Invalid page number "${trimmed}". Must be between 1 and ${totalPages}.`);
|
|
139
|
+
}
|
|
140
|
+
indices.add(page - 1); // Convert to 0-indexed
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return Array.from(indices).sort((a, b) => a - b);
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=PdfSplitter.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PdfSplitter.node.js","sourceRoot":"","sources":["../../../src/nodes/PdfSplitter/PdfSplitter.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60 60">
|
|
2
|
+
<!-- Back page -->
|
|
3
|
+
<rect x="2" y="2" width="38" height="48" rx="3" fill="#d94f3d" />
|
|
4
|
+
<!-- Middle page -->
|
|
5
|
+
<rect x="6" y="6" width="38" height="48" rx="3" fill="#e8715e" />
|
|
6
|
+
<!-- Front page -->
|
|
7
|
+
<rect x="10" y="10" width="38" height="48" rx="3" fill="#ff8a7a" />
|
|
8
|
+
<!-- PDF text -->
|
|
9
|
+
<text x="29" y="39" font-family="Arial, sans-serif" font-weight="bold" font-size="13" fill="#fff" text-anchor="middle">PDF</text>
|
|
10
|
+
<!-- Split arrow lines -->
|
|
11
|
+
<line x1="51" y1="22" x2="59" y2="16" stroke="#444" stroke-width="2.5" stroke-linecap="round"/>
|
|
12
|
+
<line x1="51" y1="34" x2="59" y2="34" stroke="#444" stroke-width="2.5" stroke-linecap="round"/>
|
|
13
|
+
<line x1="51" y1="46" x2="59" y2="52" stroke="#444" stroke-width="2.5" stroke-linecap="round"/>
|
|
14
|
+
</svg>
|
package/index.js
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "n8n-nodes-simple-pdf-splitter",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "n8n community node to split a PDF into individual pages",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"n8n-community-node-package",
|
|
7
|
+
"n8n",
|
|
8
|
+
"pdf",
|
|
9
|
+
"split",
|
|
10
|
+
"pages"
|
|
11
|
+
],
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"main": "index.js",
|
|
14
|
+
"scripts": {
|
|
15
|
+
"build": "tsc && npm run copy-icons",
|
|
16
|
+
"copy-icons": "copyfiles -u 2 src/nodes/**/*.svg dist/nodes",
|
|
17
|
+
"dev": "tsc --watch",
|
|
18
|
+
"lint": "eslint src --ext .ts",
|
|
19
|
+
"lint:fix": "eslint src --ext .ts --fix",
|
|
20
|
+
"prepublishOnly": "npm run build"
|
|
21
|
+
},
|
|
22
|
+
"n8n": {
|
|
23
|
+
"n8nNodesApiVersion": 1,
|
|
24
|
+
"nodes": [
|
|
25
|
+
"dist/nodes/PdfSplitter/PdfSplitter.node.js"
|
|
26
|
+
]
|
|
27
|
+
},
|
|
28
|
+
"files": [
|
|
29
|
+
"dist",
|
|
30
|
+
"index.js"
|
|
31
|
+
],
|
|
32
|
+
"devDependencies": {
|
|
33
|
+
"@types/node": "^18.0.0",
|
|
34
|
+
"copyfiles": "^2.4.1",
|
|
35
|
+
"n8n-workflow": "*",
|
|
36
|
+
"typescript": "^5.0.0"
|
|
37
|
+
},
|
|
38
|
+
"dependencies": {
|
|
39
|
+
"pdf-lib": "^1.17.1"
|
|
40
|
+
},
|
|
41
|
+
"peerDependencies": {
|
|
42
|
+
"n8n-workflow": "*"
|
|
43
|
+
}
|
|
44
|
+
}
|