Built a PDF node that runs fully local (n8n-nodes-pdf)

Hey everyone :waving_hand:

I built a PDF node and figured I’d share it here.

The main idea is that everything runs locally on your instance. No API keys, per-page pricing, your documents don’t get uploaded anywhere. The whole PDF engine is bundled into the package, so it has literally zero runtime dependencies. You install it and it just works.

npm: https://www.npmjs.com/package/n8n-nodes-pdf

GitHub: GitHub - krystianslowik/n8n-nodes-pdf: PDF Toolkit community node for n8n — free, local, zero-external-service PDF operations · GitHub

What’s in it right now (18 operations):

  • merge / split / extract / rotate / reorder / delete pages
  • generate PDFs from a JSON template, Markdown, or images
  • read + fill PDF forms (optionally flatten them)
  • text/image watermarks, page numbers, overlay one PDF on another
  • extract metadata, embedded images, page count

Text rendering ships with Noto fonts, so ł, č, Cyrillic, Greek and emoji (monochrome) all render fine.

My favorite use case so far: HTTP Request pulls a PDF form, Read Fields dumps all its fields as JSON, you map your data, Fill Form writes the finished PDF. The whole thing stays on your instance.

Install: Settings → Community Nodes → n8n-nodes-pdf. No credentials or setup.

Stuff worth knowing:

  • files over 100 MB get rejected on purpose (better than OOM-ing your instance)
  • it all runs in-process, so throwing huge docs at it on an already busy instance will cost you some latency and resources

If something breaks or you’re missing an operation, open an issue: Issues · krystianslowik/n8n-nodes-pdf · GitHub

Curious what you all end up using it for. :smiley:

Cheers,
Krystian

2 Likes

This is genuinely useful - the zero-dependency local execution is the key part for anyone running self-hosted n8n with sensitive documents. The PDF form fill + flatten operation is one I’ve needed many times when generating client reports before sending them downstream. One concrete use case that fits this well: pair it with an AI agent that generates a JSON template from a user prompt, then uses your node to render it into a signed PDF - no external API call needed at any step.

2 Likes