尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證n8n community node for pdfs.build: render PDFs from templates and JSON data
翻譯準備中
正在載入完整 README。 以下為已儲存的摘錄。
This is an n8n community node for pdfs.build. It lets you render PDFs from your pdfs.build templates inside n8n workflows.
pdfs.build is a PDF template engine: you design a template once, and it comes with a JSON schema that describes the data it needs. Your workflows then send JSON data to the pdfs.build API and get a finished PDF back.
n8n is a fair-code licensed workflow automation platform.
Follow the installation guide in the n8n community nodes documentation. In short, on a self-hosted instance (owner or admin account):檢視完整 README ↗This is an n8n community node for pdfs.build. It lets you render PDFs from your pdfs.build templates inside n8n workflows.
pdfs.build is a PDF template engine: you design a template once, and it comes with a JSON schema that describes the data it needs. Your workflows then send JSON data to the pdfs.build API and get a finished PDF back.
n8n is a fair-code licensed workflow automation platform.
Follow the installation guide in the n8n community nodes documentation. In short, on a self-hosted instance (owner or admin account):
n8n-nodes-pdfsbuild as the npm package name.The pdfs.build node then appears in the nodes panel. For queue mode or Docker images without GUI installs, use manual installation with npm install n8n-nodes-pdfsbuild.
The node authenticates with an organization-scoped pdfs.build API key. You need:
To set up the credential:
prs_ and is shown only once.n8n tests the credential by listing your templates. If the organization ID does not belong to the key's organization, the test fails with organization_scope_mismatch.
| Resource | Operation | What it does |
|---|---|---|
| Render | Fill a published template with JSON data and return the PDF as binary data, or queue it as a background job | |
| Render Job | Get | Get the status of a background render |
| Render Job | Download PDF | Download the PDF of a background render that has succeeded |
| Template | Get | Get a template's metadata, JSON schema and sample data |
| Template | Get Many | List the published templates in your organization |
Wherever the node asks for a template you can pick it from a searchable list or enter its template ID (the external ID you see in the app, for example invoice-primary). Both accept expressions.
Renders a published template with your data.
{{ $json }} to pass the incoming item.data.4), draft for the working copy, or a channel name such as staging. Empty uses the latest channel.whe_...) to notify about this render. Without this option every enabled endpoint is notified.Example: with Data set to
{
"company": "Acme Corp",
"items": [{ "name": "Consulting", "qty": 3, "price": 150 }],
"due_date": "2026-06-01"
}
the node outputs one item with the PDF in the data binary field and this JSON:
{ "fileName": "invoice.pdf", "fileSize": 48213 }
With Run in Background on, the output is the job handle instead:
{
"id": "job_7a1b9c2d",
"status": "queued",
"statusUrl": "https://api.pdfs.build/v2/organizations/<org>/renders/job_7a1b9c2d"
}
If the data does not match the schema, the node fails with Validation failed and lists each invalid field. If the template does not compile with that data, it fails with Compilation failed and the Typst diagnostics. Set Settings > On Error to Continue (using error output) to route these to an error branch instead.
Returns the status of a background render. Set Job ID to the id from a background render, for example {{ $json.id }}.
{
"id": "job_7a1b9c2d",
"status": "success",
"templateExternalId": "invoice-primary",
"durationMs": 812,
"downloadUrl": "https://api.pdfs.build/v2/organizations/<org>/renders/job_7a1b9c2d/pdf",
"createdAt": "2026-09-18T12:00:00.123456",
"completedAt": "2026-09-18T12:00:01.020000"
}
status is one of queued, processing, success or error. When it is error, the error field says why.
Downloads the PDF of a succeeded background render into a binary field (default data). Set Job ID as above. The download must use the same API key that queued the job. While the job is still running the node fails with a 409 error saying the PDF is not available yet.
Returns one template, including its schema (the JSON Schema your render data must satisfy) and sampleData. This is the quickest way to see which keys to send in Data.
{
"externalId": "invoice-primary",
"name": "Invoice",
"status": "published",
"schema": { "type": "object", "properties": { "company": { "type": "string" } } },
"sampleData": { "company": "Acme Corp" },
"schemaLocked": false
}
Returns one item per published template (externalId, name, status, timestamps). Turn on Return All or set a Limit (default 50).
Invoice by email. A trigger (for example a Stripe or form trigger) feeds a pdfs.build node (PDF > Render, Data set to {{ $json }}), followed by a Send Email or Gmail node that attaches the binary field data.
Large batches in the background. pdfs.build (PDF > Render, Run in Background on) then Wait (a few seconds) then pdfs.build (Render Job > Get, Job ID {{ $json.id }}) then an If node on {{ $json.status }} equal to success then pdfs.build (Render Job > Download PDF). Loop the false branch back to the Wait node, or use the render.completed webhook with an n8n Webhook trigger instead of polling.
@n8n/node-cli in strict mode, with no runtime dependencies.npm install
npm run build
npm run lint
npm run dev # starts n8n at http://localhost:5678 with this node loaded
Use Node.js 24, which npm run dev needs to run n8n. Node.js 22 can install, build and lint. On Node.js 25 npm install fails because isolated-vm, a dependency of @n8n/node-cli, does not compile.
Initial release: PDF > Render (with background mode), Render Job > Get and Download PDF, Template > Get and Get Many.