n8n-nodes-pdf4me 0.8.0 → 0.9.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 (136) hide show
  1. package/README.md +112 -114
  2. package/dist/.eslintrc.js +26 -123
  3. package/dist/README.md +112 -114
  4. package/dist/credentials/Pdf4meApi.credentials.js +1 -1
  5. package/dist/credentials/Pdf4meApi.credentials.js.map +1 -1
  6. package/dist/nodes/Pdf4me/Descriptions.js +289 -19
  7. package/dist/nodes/Pdf4me/Descriptions.js.map +1 -1
  8. package/dist/nodes/Pdf4me/GenericFunctions.d.ts +42 -7
  9. package/dist/nodes/Pdf4me/GenericFunctions.js +62 -18
  10. package/dist/nodes/Pdf4me/GenericFunctions.js.map +1 -1
  11. package/dist/nodes/Pdf4me/Pdf4me.node.js +43 -3
  12. package/dist/nodes/Pdf4me/Pdf4me.node.js.map +1 -1
  13. package/dist/nodes/Pdf4me/actions/MergeMultiplePDFs.d.ts +15 -0
  14. package/dist/nodes/Pdf4me/actions/MergeMultiplePDFs.js +515 -0
  15. package/dist/nodes/Pdf4me/actions/MergeMultiplePDFs.js.map +1 -0
  16. package/dist/nodes/Pdf4me/actions/OverlayPDFs.d.ts +15 -0
  17. package/dist/nodes/Pdf4me/actions/OverlayPDFs.js +485 -0
  18. package/dist/nodes/Pdf4me/actions/OverlayPDFs.js.map +1 -0
  19. package/dist/nodes/Pdf4me/actions/addAttachmentToPdf.d.ts +4 -0
  20. package/dist/nodes/Pdf4me/actions/addAttachmentToPdf.js +764 -0
  21. package/dist/nodes/Pdf4me/actions/addAttachmentToPdf.js.map +1 -0
  22. package/dist/nodes/Pdf4me/actions/addHtmlHeaderFooter.d.ts +4 -0
  23. package/dist/nodes/Pdf4me/actions/addHtmlHeaderFooter.js +540 -0
  24. package/dist/nodes/Pdf4me/actions/addHtmlHeaderFooter.js.map +1 -0
  25. package/dist/nodes/Pdf4me/actions/addImageStampToPdf.d.ts +15 -0
  26. package/dist/nodes/Pdf4me/actions/addImageStampToPdf.js +884 -0
  27. package/dist/nodes/Pdf4me/actions/addImageStampToPdf.js.map +1 -0
  28. package/dist/nodes/Pdf4me/actions/addImageWatermarkToImage.d.ts +17 -0
  29. package/dist/nodes/Pdf4me/actions/addImageWatermarkToImage.js +495 -0
  30. package/dist/nodes/Pdf4me/actions/addImageWatermarkToImage.js.map +1 -0
  31. package/dist/nodes/Pdf4me/actions/addMarginToPdf.d.ts +15 -0
  32. package/dist/nodes/Pdf4me/actions/addMarginToPdf.js +361 -0
  33. package/dist/nodes/Pdf4me/actions/addMarginToPdf.js.map +1 -0
  34. package/dist/nodes/Pdf4me/actions/addPageNumberToPdf.d.ts +15 -0
  35. package/dist/nodes/Pdf4me/actions/addPageNumberToPdf.js +423 -0
  36. package/dist/nodes/Pdf4me/actions/addPageNumberToPdf.js.map +1 -0
  37. package/dist/nodes/Pdf4me/actions/addTextStampToPdf.d.ts +15 -0
  38. package/dist/nodes/Pdf4me/actions/addTextStampToPdf.js +485 -0
  39. package/dist/nodes/Pdf4me/actions/addTextStampToPdf.js.map +1 -0
  40. package/dist/nodes/Pdf4me/actions/addTextWatermarkToImage.d.ts +17 -0
  41. package/dist/nodes/Pdf4me/actions/addTextWatermarkToImage.js +434 -0
  42. package/dist/nodes/Pdf4me/actions/addTextWatermarkToImage.js.map +1 -0
  43. package/dist/nodes/Pdf4me/actions/barcodeGenerator.js +2 -2
  44. package/dist/nodes/Pdf4me/actions/barcodeGenerator.js.map +1 -1
  45. package/dist/nodes/Pdf4me/actions/compressImage.d.ts +17 -0
  46. package/dist/nodes/Pdf4me/actions/compressImage.js +287 -0
  47. package/dist/nodes/Pdf4me/actions/compressImage.js.map +1 -0
  48. package/dist/nodes/Pdf4me/actions/compressPdf.d.ts +16 -0
  49. package/dist/nodes/Pdf4me/actions/compressPdf.js +209 -0
  50. package/dist/nodes/Pdf4me/actions/compressPdf.js.map +1 -0
  51. package/dist/nodes/Pdf4me/actions/{pdfToWord.d.ts → convertFromPdf.d.ts} +2 -0
  52. package/dist/nodes/Pdf4me/actions/{pdfToWord.js → convertFromPdf.js} +121 -62
  53. package/dist/nodes/Pdf4me/actions/convertFromPdf.js.map +1 -0
  54. package/dist/nodes/Pdf4me/actions/convertImageFormat.d.ts +17 -0
  55. package/dist/nodes/Pdf4me/actions/convertImageFormat.js +309 -0
  56. package/dist/nodes/Pdf4me/actions/convertImageFormat.js.map +1 -0
  57. package/dist/nodes/Pdf4me/actions/createImagesFromPdf.d.ts +4 -0
  58. package/dist/nodes/Pdf4me/actions/createImagesFromPdf.js +347 -0
  59. package/dist/nodes/Pdf4me/actions/createImagesFromPdf.js.map +1 -0
  60. package/dist/nodes/Pdf4me/actions/cropImage.js +3 -3
  61. package/dist/nodes/Pdf4me/actions/cropImage.js.map +1 -1
  62. package/dist/nodes/Pdf4me/actions/deleteBlankPagesFromPdf.d.ts +16 -0
  63. package/dist/nodes/Pdf4me/actions/deleteBlankPagesFromPdf.js +247 -0
  64. package/dist/nodes/Pdf4me/actions/deleteBlankPagesFromPdf.js.map +1 -0
  65. package/dist/nodes/Pdf4me/actions/deleteUnwantedPagesFromPdf.d.ts +16 -0
  66. package/dist/nodes/Pdf4me/actions/deleteUnwantedPagesFromPdf.js +243 -0
  67. package/dist/nodes/Pdf4me/actions/deleteUnwantedPagesFromPdf.js.map +1 -0
  68. package/dist/nodes/Pdf4me/actions/disabletracking_changes_in_word.d.ts +3 -0
  69. package/dist/nodes/Pdf4me/actions/disabletracking_changes_in_word.js +166 -0
  70. package/dist/nodes/Pdf4me/actions/disabletracking_changes_in_word.js.map +1 -0
  71. package/dist/nodes/Pdf4me/actions/extractPages.d.ts +16 -0
  72. package/dist/nodes/Pdf4me/actions/extractPages.js +248 -0
  73. package/dist/nodes/Pdf4me/actions/extractPages.js.map +1 -0
  74. package/dist/nodes/Pdf4me/actions/flipImage.d.ts +16 -0
  75. package/dist/nodes/Pdf4me/actions/flipImage.js +210 -0
  76. package/dist/nodes/Pdf4me/actions/flipImage.js.map +1 -0
  77. package/dist/nodes/Pdf4me/actions/getImageMetadata.d.ts +16 -0
  78. package/dist/nodes/Pdf4me/actions/getImageMetadata.js +209 -0
  79. package/dist/nodes/Pdf4me/actions/getImageMetadata.js.map +1 -0
  80. package/dist/nodes/Pdf4me/actions/getPdfMetadata.d.ts +15 -0
  81. package/dist/nodes/Pdf4me/actions/getPdfMetadata.js +189 -0
  82. package/dist/nodes/Pdf4me/actions/getPdfMetadata.js.map +1 -0
  83. package/dist/nodes/Pdf4me/actions/get_document_from_pdf4me.d.ts +15 -0
  84. package/dist/nodes/Pdf4me/actions/get_document_from_pdf4me.js +287 -0
  85. package/dist/nodes/Pdf4me/actions/get_document_from_pdf4me.js.map +1 -0
  86. package/dist/nodes/Pdf4me/actions/imageExtractText.d.ts +15 -0
  87. package/dist/nodes/Pdf4me/actions/imageExtractText.js +189 -0
  88. package/dist/nodes/Pdf4me/actions/imageExtractText.js.map +1 -0
  89. package/dist/nodes/Pdf4me/actions/jsonToExcel.js +2 -2
  90. package/dist/nodes/Pdf4me/actions/jsonToExcel.js.map +1 -1
  91. package/dist/nodes/Pdf4me/actions/protect_document.d.ts +3 -0
  92. package/dist/nodes/Pdf4me/actions/protect_document.js +203 -0
  93. package/dist/nodes/Pdf4me/actions/protect_document.js.map +1 -0
  94. package/dist/nodes/Pdf4me/actions/readBarcodeFromImage.d.ts +16 -0
  95. package/dist/nodes/Pdf4me/actions/readBarcodeFromImage.js +197 -0
  96. package/dist/nodes/Pdf4me/actions/readBarcodeFromImage.js.map +1 -0
  97. package/dist/nodes/Pdf4me/actions/removeExifTagsFromImage.d.ts +16 -0
  98. package/dist/nodes/Pdf4me/actions/removeExifTagsFromImage.js +209 -0
  99. package/dist/nodes/Pdf4me/actions/removeExifTagsFromImage.js.map +1 -0
  100. package/dist/nodes/Pdf4me/actions/repairPdfDocument.d.ts +15 -0
  101. package/dist/nodes/Pdf4me/actions/repairPdfDocument.js +189 -0
  102. package/dist/nodes/Pdf4me/actions/repairPdfDocument.js.map +1 -0
  103. package/dist/nodes/Pdf4me/actions/replaceTextWithImage.d.ts +15 -0
  104. package/dist/nodes/Pdf4me/actions/replaceTextWithImage.js +373 -0
  105. package/dist/nodes/Pdf4me/actions/replaceTextWithImage.js.map +1 -0
  106. package/dist/nodes/Pdf4me/actions/resizeImage.d.ts +16 -0
  107. package/dist/nodes/Pdf4me/actions/resizeImage.js +270 -0
  108. package/dist/nodes/Pdf4me/actions/resizeImage.js.map +1 -0
  109. package/dist/nodes/Pdf4me/actions/rotateDocument.d.ts +17 -0
  110. package/dist/nodes/Pdf4me/actions/rotateDocument.js +266 -0
  111. package/dist/nodes/Pdf4me/actions/rotateDocument.js.map +1 -0
  112. package/dist/nodes/Pdf4me/actions/rotateImage.d.ts +16 -0
  113. package/dist/nodes/Pdf4me/actions/rotateImage.js +232 -0
  114. package/dist/nodes/Pdf4me/actions/rotateImage.js.map +1 -0
  115. package/dist/nodes/Pdf4me/actions/rotateImageByExifData.d.ts +15 -0
  116. package/dist/nodes/Pdf4me/actions/rotateImageByExifData.js +189 -0
  117. package/dist/nodes/Pdf4me/actions/rotateImageByExifData.js.map +1 -0
  118. package/dist/nodes/Pdf4me/actions/rotatePage.d.ts +18 -0
  119. package/dist/nodes/Pdf4me/actions/rotatePage.js +282 -0
  120. package/dist/nodes/Pdf4me/actions/rotatePage.js.map +1 -0
  121. package/dist/nodes/Pdf4me/actions/signPdf.d.ts +15 -0
  122. package/dist/nodes/Pdf4me/actions/signPdf.js +739 -0
  123. package/dist/nodes/Pdf4me/actions/signPdf.js.map +1 -0
  124. package/dist/nodes/Pdf4me/actions/unlock_pdf.d.ts +3 -0
  125. package/dist/nodes/Pdf4me/actions/unlock_pdf.js +180 -0
  126. package/dist/nodes/Pdf4me/actions/unlock_pdf.js.map +1 -0
  127. package/dist/nodes/Pdf4me/actions/update_hyperlinks_annotation.d.ts +4 -0
  128. package/dist/nodes/Pdf4me/actions/update_hyperlinks_annotation.js +255 -0
  129. package/dist/nodes/Pdf4me/actions/update_hyperlinks_annotation.js.map +1 -0
  130. package/dist/nodes/Pdf4me/actions/urlToPdf.js +2 -2
  131. package/dist/nodes/Pdf4me/actions/urlToPdf.js.map +1 -1
  132. package/dist/package.json +8 -2
  133. package/dist/tsconfig.json +1 -0
  134. package/dist/tsconfig.tsbuildinfo +1 -1
  135. package/package.json +8 -2
  136. package/dist/nodes/Pdf4me/actions/pdfToWord.js.map +0 -1
package/README.md CHANGED
@@ -53,7 +53,7 @@ For Docker-based deployments, add the package to your package.json and rebuild t
53
53
  ```json
54
54
  {
55
55
  "name": "n8n-custom",
56
- "version": "0.8.0",
56
+ "version": "0.9.0",
57
57
  "description": "",
58
58
  "main": "index.js",
59
59
  "scripts": {
@@ -61,7 +61,7 @@ For Docker-based deployments, add the package to your package.json and rebuild t
61
61
  },
62
62
  "dependencies": {
63
63
  "n8n": "^1.0.0",
64
- "n8n-nodes-pdf4me": "^0.8.0"
64
+ "n8n-nodes-pdf4me": "^0.9.0"
65
65
  }
66
66
  }
67
67
  ```
@@ -70,116 +70,90 @@ For Docker-based deployments, add the package to your package.json and rebuild t
70
70
 
71
71
  This node provides comprehensive document processing capabilities through PDF4ME's API. Here are the available features:
72
72
 
73
- ### 1. Barcode Generation
74
- **Generate Barcode**: Create various types of barcodes with customizable options
75
-
76
- #### Supported Barcode Types
77
- - **QR Code** (default)
78
- - **Code 128, Code 39, Code 93**
79
- - **EAN-8, EAN-13, EAN-14**
80
- - **UPC-A, UPC-E**
81
- - **PDF417, Micro PDF417**
82
- - **Data Matrix**
83
- - **Aztec**
84
- - **MaxiCode**
85
- - And many more (100+ barcode types supported)
86
-
87
- #### Parameters
88
- - **File Name**: Name for the generated barcode file
89
- - **File Content**: Base64 encoded content of input file (optional)
90
- - **Text**: The text/data to encode in the barcode
91
- - **Barcode Type**: Select from 100+ supported barcode formats
92
- - **Hide Text**: Whether to hide or display the text alongside the barcode
93
- - **Additional Options**: Various formatting and styling options
94
-
95
- ### 2. URL/HTML to PDF Conversion
96
- **URL to PDF**: Convert web pages to PDF while preserving layout, styling, and content
97
-
98
- #### Parameters
99
- - **Web URL**: The URL of the web page to convert (required)
100
- - **File Name**: Name for the generated PDF file
101
- - **Authentication Type**: NoAuth or Basic authentication for protected sites
102
- - **Username/Password**: Credentials if Basic authentication is required
103
- - **Page Layout**: Portrait or Landscape orientation
104
- - **Page Format**: A0-A8, Tabloid, Legal, Statement, Executive formats
105
- - **Advanced Options**:
106
- - **Scale**: Zoom factor for the web page (0.1 to 2.0)
107
- - **Margins**: Top, Left, Right, Bottom margins (e.g., 20px, 1cm, 0.5in)
108
- - **Print Background**: Include background colors and images
109
- - **Display Header Footer**: Show header and footer in PDF
110
- - **Custom Profiles**: Additional API configuration options
111
-
112
- ### 3. PDF to Other Formats
113
- **PDF to Word**: Convert PDF documents to editable Word format with OCR support
114
-
115
- #### Parameters
116
- - **Input Data Type**: Choose between Binary Data (from previous node), Base64 String, URL, or File Path
117
- - **Input Binary Field**: Name of the binary property containing the PDF (when using Binary Data)
118
- - **Base64 PDF Content**: Direct base64 encoded PDF content (when using Base64 String)
119
- - **PDF URL**: URL to the PDF file to convert (when using URL)
120
- - **Local File Path**: Path to PDF file on local filesystem (when using File Path)
121
- - **Output File Name**: Name for the generated Word document
122
- - **Document Name**: Name of the source PDF file for reference
123
- - **Quality Type**:
124
- - **Draft**: Faster conversion, good for simple PDFs with clear text
125
- - **Quality**: Slower but more accurate, better for complex layouts
126
- - **OCR Language**: Language for text recognition (English, Spanish, French, German, Italian, Portuguese, Russian, Chinese, Japanese, Korean, Arabic, Dutch, Swedish, Norwegian, Danish, Finnish)
127
- - **Advanced Options**:
128
- - **Merge All Sheets**: Combine multiple pages into single document flow
129
- - **Preserve Output Format**: Maintain original formatting when possible
130
- - **Use OCR When Needed**: Enable OCR for scanned PDFs
131
- - **Use Async Processing**: Enhanced timeout handling for complex PDFs (up to 25 minutes)
132
- - **Max Retries**: Maximum polling attempts for async processing (increased for complex PDFs)
133
- - **Retry Delay**: Base seconds between polling attempts (actual delay increases exponentially)
134
- - **Custom Profiles**: Additional API configuration options
135
-
136
- ### 4. Data Conversion
137
- **JSON to Excel**: Convert JSON data to Excel spreadsheet with customizable formatting
138
-
139
- #### Parameters
140
- - **Input Data Type**: Choose between JSON String (direct input), Binary Data (from previous node), or Base64 String
141
- - **JSON Content**: Direct JSON data input with syntax highlighting (when using JSON String)
142
- - **Input Binary Field**: Name of the binary property containing the JSON file (when using Binary Data)
143
- - **Base64 JSON Content**: Direct base64 encoded JSON content (when using Base64 String)
144
- - **Output File Name**: Name for the generated Excel file
145
- - **Document Name**: Name of the output document for reference
146
- - **Worksheet Name**: Name of the Excel worksheet (default: Sheet1)
147
- - **Advanced Options**:
148
- - **Title Bold**: Make the title row bold (default: true)
149
- - **Title Wrap Text**: Wrap text in title cells (default: true)
150
- - **Convert Numbers and Dates**: Automatically convert numbers and dates (default: false)
151
- - **Ignore Null Values**: Ignore null values in the JSON (default: false)
152
- - **Number Format**: Excel number format codes (0-22) for General, Number, Currency, Percentage, Scientific, Fraction, Date/Time formats
153
- - **Date Format**: Date format pattern for Excel cells (e.g., MM/dd/yyyy)
154
- - **First Row**: Starting row number (1-based, default: 1)
155
- - **First Column**: Starting column number (1-based, default: 1)
156
- - **Custom Profiles**: Additional API configuration options
157
-
158
- ### 5. Image Processing
159
- **Crop Image**: Crop images with border or rectangle cropping options
160
-
161
- #### Parameters
162
- - **Input Data Type**: Choose between Binary Data (from previous node), Base64 String, or File Path
163
- - **Input Binary Field**: Name of the binary property containing the image file (when using Binary Data)
164
- - **Base64 Image Content**: Direct base64 encoded image content (when using Base64 String)
165
- - **Local File Path**: Path to image file on local filesystem (when using File Path)
166
- - **Output File Name**: Name for the output cropped image file
167
- - **Document Name**: Name of the source image file for reference
168
- - **Crop Type**:
169
- - **Border**: Crop by removing borders from all sides
170
- - **Rectangle**: Crop to a specific rectangular area
171
- - **Border Cropping Options** (when Crop Type = Border):
172
- - **Left Border**: Number of pixels to crop from the left border
173
- - **Right Border**: Number of pixels to crop from the right border
174
- - **Top Border**: Number of pixels to crop from the top border
175
- - **Bottom Border**: Number of pixels to crop from the bottom border
176
- - **Rectangle Cropping Options** (when Crop Type = Rectangle):
177
- - **Upper Left X**: X coordinate of the upper left corner of the crop rectangle
178
- - **Upper Left Y**: Y coordinate of the upper left corner of the crop rectangle
179
- - **Width**: Width of the crop rectangle in pixels
180
- - **Height**: Height of the crop rectangle in pixels
181
- - **Advanced Options**:
182
- - **Custom Profiles**: Additional API configuration options
73
+ ### 1. PDF Processing & Conversion
74
+ - **Add Attachment to PDF**: Attach files to PDF documents
75
+ - **Add HTML Header Footer**: Add custom HTML headers and footers to PDFs
76
+ - **Add Image Stamp to PDF**: Add image stamps with positioning and opacity controls
77
+ - **Add Margin to PDF**: Add margins to PDF documents
78
+ - **Add Page Number to PDF**: Add page numbers to PDF documents
79
+ - **Add Text Stamp to PDF**: Add text stamps with customizable formatting
80
+ - **Compress PDF**: Optimize PDF files for web, print, or screen viewing
81
+ - **Convert from PDF**: Convert PDFs to Word or Excel with OCR support
82
+ - **Create Images from PDF**: Extract images from PDF documents
83
+ - **Delete Blank Pages from PDF**: Remove blank pages from PDF documents
84
+ - **Delete Unwanted Pages from PDF**: Remove specific pages from PDF documents
85
+ - **Extract Pages**: Extract specific pages from PDF documents
86
+ - **Merge Multiple PDFs**: Combine multiple PDF files into one
87
+ - **Overlay PDFs**: Overlay one PDF on top of another
88
+ - **Protect Document**: Add password protection and encryption to PDFs
89
+ - **Repair PDF Document**: Fix corrupted or damaged PDF files
90
+ - **Rotate Document**: Rotate entire PDF documents
91
+ - **Rotate Page**: Rotate specific pages within a PDF
92
+ - **Sign PDF**: Add digital signatures to PDF documents
93
+ - **Unlock PDF**: Remove password protection from PDFs
94
+ - **Update Hyperlinks Annotation**: Modify hyperlinks and annotations in PDFs
95
+
96
+ ### 2. Image Processing
97
+ - **Add Image Watermark to Image**: Add watermarks to images
98
+ - **Add Text Watermark to Image**: Add text watermarks to images
99
+ - **Compress Image**: Reduce image file sizes while maintaining quality
100
+ - **Convert Image Format**: Convert images between different formats (JPEG, PNG, etc.)
101
+ - **Crop Image**: Crop images with border or rectangle options
102
+ - **Flip Image**: Flip images horizontally, vertically, or both
103
+ - **Get Image Metadata**: Extract metadata from image files
104
+ - **Image Extract Text**: Extract text from images using OCR
105
+ - **Read Barcode from Image**: Read barcodes from images
106
+ - **Remove EXIF Tags from Image**: Remove metadata from images
107
+ - **Replace Text with Image**: Replace text in documents with images
108
+ - **Resize Image**: Resize images to specific dimensions
109
+ - **Rotate Image**: Rotate images by specific angles
110
+ - **Rotate Image by EXIF Data**: Auto-rotate images based on EXIF orientation
111
+
112
+ ### 3. Document Conversion
113
+ - **Convert to PDF**: Convert various document formats to PDF
114
+ - **Document to PDF**: Convert documents to PDF format
115
+ - **HTML to PDF**: Convert HTML content to PDF
116
+ - **JSON to Excel**: Convert JSON data to Excel spreadsheets
117
+ - **Markdown to PDF**: Convert Markdown files to PDF
118
+ - **PNG to PDF**: Convert PNG images to PDF
119
+ - **PPTX to PDF**: Convert PowerPoint presentations to PDF
120
+ - **URL to PDF**: Convert web pages to PDF
121
+ - **Visio to PDF**: Convert Visio diagrams to PDF
122
+ - **Word to PDF Form**: Convert Word documents to PDF forms
123
+ - **XLSX to PDF**: Convert Excel spreadsheets to PDF
124
+
125
+ ### 4. Barcode Operations
126
+ - **Barcode Generator**: Generate various types of barcodes (QR, Code 128, EAN, UPC, etc.)
127
+ - **Read Barcode from Image**: Extract barcode data from images
128
+
129
+ ### 5. Document Analysis & Extraction
130
+ - **Classify Document**: Automatically classify document types
131
+ - **Extract**: Extract various elements from documents
132
+ - **Extract Attachment from PDF**: Extract attached files from PDFs
133
+ - **Extract Form Data from PDF**: Extract form field data from PDFs
134
+ - **Extract Pages from PDF**: Extract specific pages from PDFs
135
+ - **Extract Resources**: Extract resources from documents
136
+ - **Extract Table from PDF**: Extract tables from PDF documents
137
+ - **Extract Text by Expression**: Extract text using custom expressions
138
+ - **Extract Text from Word**: Extract text from Word documents
139
+ - **Find Search**: Search for specific content in documents
140
+ - **Get Document from PDF4ME**: Retrieve documents from PDF4ME storage
141
+ - **Get PDF Metadata**: Extract metadata from PDF files
142
+
143
+ ### 6. Document Management
144
+ - **Create PDF/A**: Create PDF/A compliant documents
145
+ - **Disable Tracking Changes in Word**: Remove tracking changes from Word documents
146
+ - **Edit**: Edit document properties and content
147
+ - **Flatten PDF**: Flatten PDF forms and annotations
148
+ - **Form**: Process PDF forms
149
+ - **Generate**: Generate documents from templates
150
+ - **Linearize PDF**: Optimize PDFs for web streaming
151
+ - **Organize**: Organize document structure
152
+ - **Upload File**: Upload files to PDF4ME storage
153
+
154
+ ### 7. Advanced Features
155
+ - **Router**: Route documents based on conditions
156
+ - **Split PDF**: Split PDF documents into multiple files
183
157
 
184
158
  ## Credentials
185
159
 
@@ -198,12 +172,16 @@ This node allows you to automate document processing tasks in your n8n workflows
198
172
  - Process complex PDFs with enhanced timeout handling (up to 25 minutes)
199
173
  - Extract text from PDF documents for data processing
200
174
  - Convert various document formats to PDF
175
+ - Extract specific pages from PDF documents for creating shorter versions or digital booklets
176
+ - Add watermarks, stamps, and annotations to documents
177
+ - Compress and optimize PDF files for different use cases
201
178
 
202
179
  ### Barcode Operations
203
180
  - Generate QR codes for product tracking
204
181
  - Create product barcodes (EAN-13, UPC-A) for inventory management
205
182
  - Generate barcodes for document identification
206
183
  - Embed barcodes in documents and reports
184
+ - Read barcodes from images for automated processing
207
185
 
208
186
  ### Web Content Processing
209
187
  - Convert web pages to PDF for archiving
@@ -222,12 +200,15 @@ This node allows you to automate document processing tasks in your n8n workflows
222
200
  - Remove borders from scanned documents
223
201
  - Process product images for e-commerce
224
202
  - Create thumbnails and optimized images
203
+ - Add watermarks to images for branding
204
+ - Extract text from images using OCR
225
205
 
226
206
  ### Automated Workflows
227
207
  - Chain multiple PDF4ME operations together
228
208
  - Integrate with email nodes for automated document distribution
229
209
  - Connect with storage services for file management
230
210
  - Build complete document processing pipelines
211
+ - Automate document classification and routing
231
212
 
232
213
  For detailed examples and workflow templates, visit our documentation.
233
214
 
@@ -242,15 +223,32 @@ For detailed examples and workflow templates, visit our documentation.
242
223
 
243
224
  ## Version History
244
225
 
226
+ ### 0.9.0
227
+ - **Current Version**: Comprehensive document processing capabilities with 50+ actions
228
+ - Full integration with PDF4ME API services
229
+ - Complete PDF processing suite including conversion, manipulation, and analysis
230
+ - Advanced image processing capabilities with watermarking, cropping, and format conversion
231
+ - Comprehensive barcode generation and reading functionality
232
+ - Document conversion between multiple formats (PDF, Word, Excel, HTML, etc.)
233
+ - Enhanced timeout handling for complex operations (up to 25 minutes)
234
+ - Improved async processing with exponential backoff and better error handling
235
+ - Support for multiple input types (Binary Data, Base64, URL, File Path)
236
+ - Advanced OCR capabilities with multi-language support
237
+ - Document protection, signing, and security features
238
+ - Metadata extraction and document analysis tools
239
+ - All critical lint errors resolved for production readiness
240
+ - Optimized package structure and build validation
241
+
245
242
  ### 0.8.0
246
- - **Current Version**: Comprehensive document processing capabilities
243
+ - Comprehensive document processing capabilities
247
244
  - Full integration with PDF4ME API services
248
- - Support for barcode generation, URL to PDF conversion, PDF to Word conversion, JSON to Excel conversion, and image cropping
245
+ - Support for barcode generation, URL to PDF conversion, PDF to Word conversion, JSON to Excel conversion, image cropping, and PDF page extraction
249
246
  - Enhanced timeout handling for complex PDF to Word conversions (up to 25 minutes)
250
247
  - Improved async processing with exponential backoff and better error handling
251
248
  - Support for multiple input types (Binary Data, Base64, URL, File Path)
252
249
  - Advanced OCR capabilities with multi-language support
253
250
  - Comprehensive barcode generation with 100+ supported formats
251
+ - PDF page extraction for creating shorter versions and digital booklets
254
252
  - Standardized API documentation URLs across all files
255
253
  - Global installation support for cross-project availability
256
254
 
package/dist/.eslintrc.js CHANGED
@@ -18,129 +18,32 @@ module.exports = {
18
18
  extraFileExtensions: ['.json'],
19
19
  },
20
20
 
21
- ignorePatterns: ['.eslintrc.js', '**/*.js', '**/node_modules/**', '**/dist/**'],
21
+ ignorePatterns: ['.eslintrc.js', '**/*.js', '**/node_modules/**', '**/dist/**', 'package.json'],
22
22
 
23
- overrides: [
24
- {
25
- files: ['package.json'],
26
- plugins: ['eslint-plugin-n8n-nodes-base'],
27
- extends: ['plugin:n8n-nodes-base/community'],
28
- rules: {
29
- 'n8n-nodes-base/community-package-json-name-still-default': 'off',
30
- },
31
- },
32
- {
33
- files: ['./credentials/**/*.ts'],
34
- plugins: ['eslint-plugin-n8n-nodes-base'],
35
- extends: ['plugin:n8n-nodes-base/credentials'],
36
- rules: {
37
- 'n8n-nodes-base/cred-class-field-authenticate-type-assertion': 'error',
38
- 'n8n-nodes-base/cred-class-field-display-name-missing-oauth2': 'error',
39
- 'n8n-nodes-base/cred-class-field-display-name-miscased': 'error',
40
- 'n8n-nodes-base/cred-class-field-documentation-url-missing': 'error',
41
- 'n8n-nodes-base/cred-class-field-documentation-url-miscased': 'off',
42
- 'n8n-nodes-base/cred-class-field-name-missing-oauth2': 'error',
43
- 'n8n-nodes-base/cred-class-field-name-unsuffixed': 'error',
44
- 'n8n-nodes-base/cred-class-field-name-uppercase-first-char': 'error',
45
- 'n8n-nodes-base/cred-class-field-properties-assertion': 'error',
46
- 'n8n-nodes-base/cred-class-field-type-options-password-missing': 'error',
47
- 'n8n-nodes-base/cred-class-name-missing-oauth2-suffix': 'error',
48
- 'n8n-nodes-base/cred-class-name-unsuffixed': 'error',
49
- 'n8n-nodes-base/cred-filename-against-convention': 'error',
50
- },
51
- },
52
- {
53
- files: ['./nodes/**/*.ts'],
54
- plugins: ['eslint-plugin-n8n-nodes-base'],
55
- extends: ['plugin:n8n-nodes-base/nodes'],
56
- rules: {
57
- 'n8n-nodes-base/node-class-description-credentials-name-unsuffixed': 'error',
58
- 'n8n-nodes-base/node-class-description-display-name-unsuffixed-trigger-node': 'error',
59
- 'n8n-nodes-base/node-class-description-empty-string': 'error',
60
- 'n8n-nodes-base/node-class-description-icon-not-svg': 'error',
61
- 'n8n-nodes-base/node-class-description-inputs-wrong-regular-node': 'off',
62
- 'n8n-nodes-base/node-class-description-inputs-wrong-trigger-node': 'error',
63
- 'n8n-nodes-base/node-class-description-missing-subtitle': 'error',
64
- 'n8n-nodes-base/node-class-description-non-core-color-present': 'error',
65
- 'n8n-nodes-base/node-class-description-name-miscased': 'error',
66
- 'n8n-nodes-base/node-class-description-name-unsuffixed-trigger-node': 'error',
67
- 'n8n-nodes-base/node-class-description-outputs-wrong': 'off',
68
- 'n8n-nodes-base/node-dirname-against-convention': 'error',
69
- 'n8n-nodes-base/node-execute-block-double-assertion-for-items': 'error',
70
- 'n8n-nodes-base/node-execute-block-wrong-error-thrown': 'error',
71
- 'n8n-nodes-base/node-filename-against-convention': 'error',
72
- 'n8n-nodes-base/node-param-array-type-assertion': 'error',
73
- 'n8n-nodes-base/node-param-color-type-unused': 'error',
74
- 'n8n-nodes-base/node-param-default-missing': 'error',
75
- 'n8n-nodes-base/node-param-default-wrong-for-boolean': 'error',
76
- 'n8n-nodes-base/node-param-default-wrong-for-collection': 'error',
77
- 'n8n-nodes-base/node-param-default-wrong-for-fixed-collection': 'error',
78
- 'n8n-nodes-base/node-param-default-wrong-for-fixed-collection': 'error',
79
- 'n8n-nodes-base/node-param-default-wrong-for-multi-options': 'error',
80
- 'n8n-nodes-base/node-param-default-wrong-for-number': 'error',
81
- 'n8n-nodes-base/node-param-default-wrong-for-simplify': 'error',
82
- 'n8n-nodes-base/node-param-default-wrong-for-string': 'error',
83
- 'n8n-nodes-base/node-param-description-boolean-without-whether': 'error',
84
- 'n8n-nodes-base/node-param-description-comma-separated-hyphen': 'error',
85
- 'n8n-nodes-base/node-param-description-empty-string': 'error',
86
- 'n8n-nodes-base/node-param-description-excess-final-period': 'error',
87
- 'n8n-nodes-base/node-param-description-excess-inner-whitespace': 'error',
88
- 'n8n-nodes-base/node-param-description-identical-to-display-name': 'error',
89
- 'n8n-nodes-base/node-param-description-line-break-html-tag': 'error',
90
- 'n8n-nodes-base/node-param-description-lowercase-first-char': 'error',
91
- 'n8n-nodes-base/node-param-description-miscased-id': 'error',
92
- 'n8n-nodes-base/node-param-description-miscased-json': 'error',
93
- 'n8n-nodes-base/node-param-description-miscased-url': 'error',
94
- 'n8n-nodes-base/node-param-description-missing-final-period': 'error',
95
- 'n8n-nodes-base/node-param-description-missing-for-ignore-ssl-issues': 'error',
96
- 'n8n-nodes-base/node-param-description-missing-for-return-all': 'error',
97
- 'n8n-nodes-base/node-param-description-missing-for-simplify': 'error',
98
- 'n8n-nodes-base/node-param-description-missing-from-dynamic-multi-options': 'error',
99
- 'n8n-nodes-base/node-param-description-missing-from-dynamic-options': 'error',
100
- 'n8n-nodes-base/node-param-description-missing-from-limit': 'error',
101
- 'n8n-nodes-base/node-param-description-unencoded-angle-brackets': 'error',
102
- 'n8n-nodes-base/node-param-description-unneeded-backticks': 'error',
103
- 'n8n-nodes-base/node-param-description-untrimmed': 'error',
104
- 'n8n-nodes-base/node-param-description-url-missing-protocol': 'error',
105
- 'n8n-nodes-base/node-param-description-weak': 'error',
106
- 'n8n-nodes-base/node-param-description-wrong-for-dynamic-multi-options': 'error',
107
- 'n8n-nodes-base/node-param-description-wrong-for-dynamic-options': 'error',
108
- 'n8n-nodes-base/node-param-description-wrong-for-ignore-ssl-issues': 'error',
109
- 'n8n-nodes-base/node-param-description-wrong-for-limit': 'error',
110
- 'n8n-nodes-base/node-param-description-wrong-for-return-all': 'error',
111
- 'n8n-nodes-base/node-param-description-wrong-for-simplify': 'error',
112
- 'n8n-nodes-base/node-param-description-wrong-for-upsert': 'error',
113
- 'n8n-nodes-base/node-param-display-name-excess-inner-whitespace': 'error',
114
- 'n8n-nodes-base/node-param-display-name-miscased-id': 'error',
115
- 'n8n-nodes-base/node-param-display-name-miscased': 'error',
116
- 'n8n-nodes-base/node-param-display-name-not-first-position': 'error',
117
- 'n8n-nodes-base/node-param-display-name-untrimmed': 'error',
118
- 'n8n-nodes-base/node-param-display-name-wrong-for-dynamic-multi-options': 'error',
119
- 'n8n-nodes-base/node-param-display-name-wrong-for-dynamic-options': 'error',
120
- 'n8n-nodes-base/node-param-display-name-wrong-for-simplify': 'error',
121
- 'n8n-nodes-base/node-param-display-name-wrong-for-update-fields': 'error',
122
- 'n8n-nodes-base/node-param-min-value-wrong-for-limit': 'error',
123
- 'n8n-nodes-base/node-param-multi-options-type-unsorted-items': 'error',
124
- 'n8n-nodes-base/node-param-name-untrimmed': 'error',
125
- 'n8n-nodes-base/node-param-operation-option-action-wrong-for-get-many': 'error',
126
- 'n8n-nodes-base/node-param-operation-option-description-wrong-for-get-many': 'error',
127
- 'n8n-nodes-base/node-param-operation-option-without-action': 'error',
128
- 'n8n-nodes-base/node-param-operation-without-no-data-expression': 'error',
129
- 'n8n-nodes-base/node-param-option-description-identical-to-name': 'error',
130
- 'n8n-nodes-base/node-param-option-name-containing-star': 'error',
131
- 'n8n-nodes-base/node-param-option-name-duplicate': 'error',
132
- 'n8n-nodes-base/node-param-option-name-wrong-for-get-many': 'error',
133
- 'n8n-nodes-base/node-param-option-name-wrong-for-upsert': 'error',
134
- 'n8n-nodes-base/node-param-option-value-duplicate': 'error',
135
- 'n8n-nodes-base/node-param-options-type-unsorted-items': 'error',
136
- 'n8n-nodes-base/node-param-placeholder-miscased-id': 'error',
137
- 'n8n-nodes-base/node-param-placeholder-missing-email': 'error',
138
- 'n8n-nodes-base/node-param-required-false': 'error',
139
- 'n8n-nodes-base/node-param-resource-with-plural-option': 'error',
140
- 'n8n-nodes-base/node-param-resource-without-no-data-expression': 'error',
141
- 'n8n-nodes-base/node-param-type-options-missing-from-limit': 'error',
142
- 'n8n-nodes-base/node-param-type-options-password-missing': 'error',
143
- },
144
- },
23
+ extends: [
24
+ 'eslint:recommended',
25
+ 'plugin:@typescript-eslint/recommended',
145
26
  ],
27
+
28
+ rules: {
29
+ // Basic TypeScript rules
30
+ '@typescript-eslint/no-unused-vars': 'error',
31
+ '@typescript-eslint/no-explicit-any': 'warn',
32
+ '@typescript-eslint/explicit-function-return-type': 'off',
33
+ '@typescript-eslint/explicit-module-boundary-types': 'off',
34
+ '@typescript-eslint/no-inferrable-types': 'off',
35
+
36
+ // General code quality rules
37
+ 'no-console': 'warn',
38
+ 'no-debugger': 'error',
39
+ 'no-unused-vars': 'off', // Use TypeScript version instead
40
+ 'prefer-const': 'error',
41
+ 'no-var': 'error',
42
+
43
+ // Formatting rules
44
+ 'indent': ['error', 'tab'],
45
+ 'quotes': ['error', 'single'],
46
+ 'semi': ['error', 'always'],
47
+ 'comma-dangle': ['error', 'always-multiline'],
48
+ },
146
49
  };