pdf

PDF Pipeline Builder

Build PDF processing as a node pipeline, inspect intermediate results, and reuse saved Recipes with other PDFs.

Local processing
About your filesFiles and content selected in this tool are processed in your browser and are not uploaded to a Browser Kitty backend.
Operation demo See the basic workflow in a short video.

About this tool

PDF Pipeline Builder lets you build multi-step PDF processing visually by connecting nodes in execution order. Start from PDF Input, add page selection/reordering, deletion, duplication, blank-page insertion, rotation, reverse order, Split / Merge, page numbers, Watermark, or Text Stamp nodes, then connect the final stream to PDF Output. Selecting a node shows a local preview of the PDF state at that point.

A Pipeline can be stored as a browser-local Recipe for quick reuse or exported as Pipeline JSON for backup, transfer, or Git-based storage. Neither format stores the source PDF bytes, so PDF Inputs need to be selected again when reused. Selected PDFs, intermediate previews, Recipe execution, and generated PDFs are processed locally in the browser and are not uploaded by the app.

Good for

  • Reuse the same page selection, reordering, and numbering workflow for recurring PDF tasks
  • Split a PDF into selected and remaining pages, process branches independently, then merge them in a chosen order
  • Control whether page numbers or watermarks happen before or after other page operations
  • Inspect intermediate PDF states while building a multi-step workflow instead of checking only the final output
  • Back up or transfer a PDF processing graph as Pipeline JSON for another device or Git repository

What it can do

Key capabilities available in this tool.

How to use

  1. Open the tool, add one or more PDF Input nodes, and choose local PDF files.
  2. Add processing nodes by clicking the palette or dragging them onto the Canvas.
  3. Connect nodes in the order they should run. Use Split Pages for branches and Merge Pages to combine streams again.
  4. Select a node to adjust its settings and inspect the local intermediate Preview. PDF Output is shown as the final Result.
  5. Connect the final page stream to PDF Output, set the output filename, and run the Pipeline.
  6. Check the generated result and save the PDF when ready.
  7. Save as a Recipe for quick reuse in this browser, or export Pipeline JSON for backup or transfer to another environment.

Supported

  • Input / output: choose local PDFs in PDF Input nodes and save the processed PDF from PDF Output; multiple PDF Inputs are supported.
  • Page operations: Select / Reorder, Delete Pages, Duplicate Pages, Insert Blank Page, Rotate, and Reverse Pages. Page expressions refer to the stream reaching that node.
  • Branch / combine: Split Pages creates Selected / Rest streams, and Merge Pages combines 2–6 inputs in a defined order.
  • Document processing: Page Numbers, Watermark, and Text Stamp. Custom Watermark text is limited to ASCII in v1.0.0.
  • Preview: only the upstream path needed by the selected node is evaluated, with up to six pages shown at once, Split stream switching, and enlarged page previews.
  • Persistence: Recipes store the graph and settings in localStorage; Pipeline JSON preserves nodes, edges, settings, positions, viewport, and output filename. Source PDF bytes are not persisted.
  • Runtime networking: pdf-lib and Node Editor Core are embedded in the single HTML with connect-src 'none'; selected PDF content is not sent to an app server.

Limitations and notes

  • Preview display depends on the browser's built-in inline PDF viewer; Chrome and Edge are the primary targets.
  • Custom Watermark text is limited to ASCII in v1.0.0; custom fonts such as Japanese fonts are not embedded.
  • Editing a digitally signed PDF can invalidate its original digital signature.
  • Because pages are rebuilt into a new output PDF, document-level structures such as bookmarks, attachments, forms, signatures, and outlines are not guaranteed to be preserved.
  • Large PDFs and complex multi-branch Pipelines can consume substantial device memory because processing is fully local.
  • Recipes are stored in this browser. Use Pipeline JSON for backup, transfer, or Git-based storage.
  • Source PDF bytes are not stored in Pipeline JSON or Recipes, so PDF Inputs need to be selected again after reopening them.

Frequently asked questions

Are PDFs uploaded to a server?

No. The GitHub Pages version downloads the initial app HTML, but selected PDFs, intermediate previews, Recipe execution, and generated output are processed locally. The page uses a CSP with connect-src 'none' and does not upload selected PDF content to an app server.

What is the difference between a Recipe and Pipeline JSON?

A Recipe is for quickly reusing processing steps in the same browser. Pipeline JSON is intended for backup, transfer, or Git-based storage. Neither stores source PDF bytes, so PDF Inputs must be selected again when reused.

Can I inspect intermediate results?

Yes. Selecting a node evaluates only the upstream path needed for that node and shows an intermediate Preview. PDF Output is shown as the final Result.

How is this different from PDF Organizer?

PDF Organizer is suited to one-off page organization across PDFs, images, and PowerPoint slides. PDF Pipeline Builder is for composing multiple PDF operations as an ordered node graph and reusing the processing workflow as a Recipe or Pipeline JSON.

Can I use Japanese text in a custom watermark?

Not in v1.0.0. Custom Watermark text is limited to ASCII because custom fonts such as Japanese fonts are not embedded.

Offline version and source code

The repository generates a single HTML build with pdf-lib and Node Editor Core embedded. Open the generated dist/index.html directly to load PDFs, edit Pipelines, preview results, run Recipes, and save PDFs without a network connection.

View source on GitHub