@pdfgeneratorapi/n8n-nodes-pdf-generator-api 0.4.0 โ 0.5.1
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 +51 -2
- package/dist/credentials/PdfGeneratorApi.credentials.d.ts +4 -0
- package/dist/credentials/PdfGeneratorApi.credentials.js +1 -0
- package/dist/credentials/PdfGeneratorApi.credentials.js.map +1 -1
- package/dist/credentials/pdfgeneratorapi.svg +1 -0
- package/dist/nodes/PdfGeneratorApi/PdfGeneratorApi.node.js +519 -45
- package/dist/nodes/PdfGeneratorApi/PdfGeneratorApi.node.js.map +1 -1
- package/dist/package.json +6 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -2
package/README.md
CHANGED
|
@@ -12,6 +12,7 @@ PDF Generator API is a powerful service that allows you to generate PDFs from te
|
|
|
12
12
|
[Compatibility](#compatibility)
|
|
13
13
|
[Usage](#usage)
|
|
14
14
|
[Resources](#resources)
|
|
15
|
+
[Development](#development)
|
|
15
16
|
[Version history](#version-history)
|
|
16
17
|
|
|
17
18
|
## Installation
|
|
@@ -55,6 +56,17 @@ This node supports the following operations organized by resource:
|
|
|
55
56
|
- **HTML to PDF** - Convert HTML content directly to PDF
|
|
56
57
|
- **URL to PDF** - Convert a public URL to PDF
|
|
57
58
|
|
|
59
|
+
### E-Invoice
|
|
60
|
+
- **Create E-Invoice** - Create an EN 16931 e-invoice as UBL or CII XML
|
|
61
|
+
- **Create Factur-X E-Invoice** - Create a Factur-X PDF with the CII XML embedded, rendered from a template
|
|
62
|
+
- **Create XRechnung E-Invoice** - Create an XRechnung 3.0 e-invoice, validated against the German BR-DE rules
|
|
63
|
+
- **Get Schema** - Get the JSON schema of the accepted invoice payload
|
|
64
|
+
|
|
65
|
+
Notes for the three Create operations:
|
|
66
|
+
- Base64 and file outputs both attach the document as a binary item named `data`
|
|
67
|
+
- Validation errors from the API (for example `[BR-DE-2]`) are shown in the node error
|
|
68
|
+
- Known API limitations: BT-11, BT-12, BT-19 and attachments are accepted but not written to the output, and an attachment with unpadded base64 returns a 500
|
|
69
|
+
|
|
58
70
|
### PDF Services
|
|
59
71
|
- **Add Watermark** - Add text or image watermarks to PDF documents
|
|
60
72
|
- **Encrypt Document** - Encrypt PDF documents with password protection
|
|
@@ -89,8 +101,7 @@ The node automatically handles JWT token generation using your API credentials.
|
|
|
89
101
|
|
|
90
102
|
## Compatibility
|
|
91
103
|
|
|
92
|
-
- **Minimum n8n version**:
|
|
93
|
-
- **Tested with**: n8n versions 0.199.0+
|
|
104
|
+
- **Minimum n8n version**: 1.85.0
|
|
94
105
|
- **Node API version**: 1
|
|
95
106
|
|
|
96
107
|
## Usage
|
|
@@ -117,6 +128,16 @@ The node automatically handles JWT token generation using your API credentials.
|
|
|
117
128
|
4. Configure paper size and orientation
|
|
118
129
|
5. Specify filename and output format
|
|
119
130
|
|
|
131
|
+
### E-Invoice Generation
|
|
132
|
+
1. Select **Resource**: E-Invoice
|
|
133
|
+
2. Run **Get Schema** once to see the payload structure (Peppol BIS Billing 3.0 UBL, rooted at `ubl:Invoice`)
|
|
134
|
+
3. Select **Create E-Invoice**, **Create XRechnung E-Invoice** or **Create Factur-X E-Invoice**
|
|
135
|
+
4. Provide the invoice JSON in **Invoice Data**
|
|
136
|
+
5. For Factur-X, choose a template whose fields are mapped to UBL element names (for example `{cbc:ID}`), and pick a **Profile**. The default Basic profile drops item level detail, so use EN 16931 or Extended when lines carry extra attributes
|
|
137
|
+
6. The XML or PDF is attached as binary `data`, ready for an email or upload node
|
|
138
|
+
|
|
139
|
+
XRechnung is the strictest option: the seller contact (BG-6) and a buyer reference (BT-10) are mandatory, and a missing element fails with the rule ID in the error message.
|
|
140
|
+
|
|
120
141
|
### PDF Processing
|
|
121
142
|
- **Watermarking**: Add text or image watermarks with positioning options
|
|
122
143
|
- **Encryption**: Protect PDFs with owner and user passwords
|
|
@@ -166,8 +187,36 @@ For workflows that should continue on errors, enable "Continue on Fail" in node
|
|
|
166
187
|
* [Template Editor Guide](https://support.pdfgeneratorapi.com/en/category/components-1ffseaj/)
|
|
167
188
|
* [Expression Language Documentation](https://support.pdfgeneratorapi.com/en/category/expression-language-q203pa/)
|
|
168
189
|
|
|
190
|
+
## Development
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
npm ci
|
|
194
|
+
npm run hooks:install # once per clone, runs npm run check before every commit
|
|
195
|
+
npm run check # build, unit tests, lint and n8n's scanner lint
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
- `npm test` builds the node and runs the unit tests in `test/`. They run the node against a fake n8n context, so no API credentials are needed.
|
|
199
|
+
- `npm run lint:n8n` runs the lint checks of n8n's community package scanner (`@n8n/scan-community-package`), which n8n runs on every published version of a verified node. The scanner is installed separately in `tools/n8n-scan`.
|
|
200
|
+
- Releases are published by the GitHub Actions workflow when a version tag is pushed: bump `version` in `package.json`, merge to `master`, then push a tag with the same version, for example `git tag 0.5.1 && git push origin 0.5.1`.
|
|
201
|
+
|
|
169
202
|
## Version history
|
|
170
203
|
|
|
204
|
+
### 0.5.1
|
|
205
|
+
- ๐ง **Improved**: Passes n8n's community package scanner, required for verified nodes
|
|
206
|
+
- Requests use `httpRequestWithAuthentication` instead of the deprecated `requestWithAuthentication`
|
|
207
|
+
- Output items keep their link to the input item (`pairedItem`)
|
|
208
|
+
- The credentials have an icon
|
|
209
|
+
- ๐ **Fixed**: Error messages from the API are shown for file outputs too, not only the HTTP status
|
|
210
|
+
- ๐ **Fixed**: Workspace Delete returns a success item instead of failing on an empty response
|
|
211
|
+
- ๐ง **Breaking**: Requires n8n 1.85.0 or later
|
|
212
|
+
- ๐งช **New**: Unit tests and a pre-commit hook that runs the same checks as the publish workflow
|
|
213
|
+
|
|
214
|
+
### 0.5.0
|
|
215
|
+
- **New**: Added E-Invoice resource
|
|
216
|
+
- Create E-Invoice (EN 16931, UBL or CII), Create Factur-X E-Invoice, Create XRechnung E-Invoice, Get Schema
|
|
217
|
+
- Base64 and file outputs attach the document as binary `data`
|
|
218
|
+
- API validation messages are surfaced in the node error instead of a generic HTTP status text
|
|
219
|
+
|
|
171
220
|
### 0.4.0
|
|
172
221
|
- **New**: Added Asset resource with QR code generation
|
|
173
222
|
- Generate QR codes with customizable colors
|
|
@@ -2,6 +2,10 @@ import { ICredentialDataDecryptedObject, ICredentialTestRequest, ICredentialType
|
|
|
2
2
|
export declare class PdfGeneratorApi implements ICredentialType {
|
|
3
3
|
name: string;
|
|
4
4
|
displayName: string;
|
|
5
|
+
icon: {
|
|
6
|
+
readonly light: "file:pdfgeneratorapi.svg";
|
|
7
|
+
readonly dark: "file:pdfgeneratorapi.svg";
|
|
8
|
+
};
|
|
5
9
|
documentationUrl: string;
|
|
6
10
|
properties: INodeProperties[];
|
|
7
11
|
private validateCredentials;
|
|
@@ -6,6 +6,7 @@ class PdfGeneratorApi {
|
|
|
6
6
|
constructor() {
|
|
7
7
|
this.name = 'pdfGeneratorApi';
|
|
8
8
|
this.displayName = 'PDF Generator API';
|
|
9
|
+
this.icon = { light: 'file:pdfgeneratorapi.svg', dark: 'file:pdfgeneratorapi.svg' };
|
|
9
10
|
this.documentationUrl = 'https://docs.pdfgeneratorapi.com/v4';
|
|
10
11
|
this.properties = [
|
|
11
12
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PdfGeneratorApi.credentials.js","sourceRoot":"","sources":["../../credentials/PdfGeneratorApi.credentials.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"PdfGeneratorApi.credentials.js","sourceRoot":"","sources":["../../credentials/PdfGeneratorApi.credentials.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 53 49" class="w-10" width="53" height="49" ><path fill="#02D1AE" d="M25.5 1.38A6.89 6.89 0 0 0 19.35.3L4.957 4.616A6.914 6.914 0 0 0 0 11.28v30.76a6.89 6.89 0 0 0 2.804 5.578 6.9 6.9 0 0 0 6.15 1.082l10.743-3.224a11.8 11.8 0 0 1-.506-3.437V28.07a11.7 11.7 0 0 1 3.017-7.883 11.8 11.8 0 0 1 5.357-3.375l.738-.211V6.962A6.9 6.9 0 0 0 25.5 1.381"></path><path fill="#02D1AE" d="M52.289 23.752v13.97a6.91 6.91 0 0 1-4.958 6.66L32.939 48.7a6.89 6.89 0 0 1-6.15-1.082 7 7 0 0 1-1.441-1.439 6.8 6.8 0 0 1-1.075-2.144q-.003 0-.007.002l.005-.005a7.1 7.1 0 0 1-.286-1.993V28.07c0-1.433.427-2.779 1.18-3.897a6.9 6.9 0 0 1 3.779-2.765l1.76-.528 12.631-3.79a6.89 6.89 0 0 1 6.15 1.082 6.9 6.9 0 0 1 2.804 5.581"></path></svg>
|