• Zero upload
  • Local CPU
  • Offline-capable
  • Auto cleanup
0 outbound requests

protect / Flatten

Flatten

Burn forms, annotations and layers into the page.

Add at least one PDF in the file tray to begin.

Methodology & Technical Transparency

Libraries used

  • pdf-lib — Core PDF construction and editing logic
  • pdf.js — PDF rendering and page rasterisation

Memory strategy

After each operation, URL.revokeObjectURL() is called immediately. All pdf.js document handles are destroyed via pdfDoc.destroy(). Workers are terminated on completion or component unmount.

We do not guarantee the permanent storage of files (as we don't store them). Processing of password-protected files is not supported locally.

Key Features

  • Burn interactive fields to static content

    Form fields, checkboxes, and text inputs are rendered into the page as permanent visual elements.

  • Annotations and layers

    All PDF annotations (comments, stamps, ink) and optional content layers are merged into the base page.

  • Print and archive ready

    The flattened PDF renders identically in every viewer and prints consistently — no renderer variations.

Common Use Cases

Used to finalise filled application forms before submission, create print-ready files from form-based designs, or archive completed contracts that must not be altered.

Frequently Asked Questions

Can I un-flatten a document?
No. Flattening is irreversible. Keep a copy of the interactive version before applying.
What is the difference between saving and flattening?
Saving preserves interactive fields. Flattening destroys them — the result is a static image of the form, not an editable form.
Are digital signatures affected?
Yes. Flattening renders signature appearance into pixels, which invalidates the cryptographic signature. Apply only to forms where the signature appearance no longer needs to be verified.