PDF Flatten

Make form fields permanent and strip annotation layers for archiving or signing.

100% private

Flatten interactive form fields so their filled-in values become fixed page content that can no longer be edited, and optionally remove annotations entirely. The result behaves like a regular static PDF. Useful when sending completed forms to organisations that reject documents with live form fields, or when archiving a once-interactive document. The flatten happens in-browser via pdf-lib, so the file never leaves your device just to lose its editability.

Runs right inside your browser tab. No uploads. Your files stay private.

What Flattening a PDF Actually Does — AcroForms, Annotations, and Page Streams

A PDF with interactive form fields stores the field values in a separate AcroForm dictionary. The widgets float on top of the page, and any PDF viewer can re-edit or even clear them. Flattening rewrites each page so that the field values are merged into the page's content stream as plain text and graphics, then strips the AcroForm dictionary entirely. The result looks identical but is no longer interactive.
Annotations — sticky notes, highlights, comments, free-text callouts — live in each page's /Annots array. Different viewers display them differently: Acrobat shows the popup boxes, Chrome shows the highlight only, some mobile readers hide them entirely. Removing annotations deletes the /Annots entries from each page, so comments, highlights, and sticky notes no longer appear in any viewer — the document is reduced to its underlying page content.
PDF Flatten runs via JavaScript in your tab using pdf-lib. Form fields are flattened with PDFForm.flatten(), which writes each field's appearance stream into the page content and then strips the AcroForm dictionary, so the filled values stay visible but become permanent. Annotations are removed by deleting each page's /Annots array. Output is serialized with object stream packing enabled.
Flattening is irreversible — there is no metadata kept that lets you reconstruct the original AcroForm fields. Keep a copy of the source file if you may need to edit fields again.
Common use is right before signing or archiving: a flattened completed form cannot be edited or cleared by the recipient, which makes audits and legal review safer. It is also the recommended preprocessing step before applying a digital signature, because once a PDF is signed, any subsequent flattening would invalidate the signature.
File size sometimes increases after flattening, especially for complex forms with many widgets — embedding the visual appearance of every field into the page stream takes more bytes than referencing a shared widget. Run the result through PDF Compressor afterward if size matters.
Encrypted PDFs cannot be parsed by pdf-lib, so password-protected files must be unlocked with the PDF Password tool first. Existing digital signatures will be invalidated by flattening because the page bytes change — that is a property of the PDF signing standard, not a tool limitation.

Common Use Cases

01

Lock filled tax or visa forms

Flatten a completed government form before signing so reviewers cannot accidentally clear or edit the entered data.

02

Final archival copy

Produce a viewer-independent PDF for long-term storage where every reader (including future ones) renders the document identically.

03

Distribute read-only forms

Share a completed template as a non-editable PDF without creating a second print-to-PDF pass.

04

Strip reviewer comments before publishing

Remove sticky notes and highlights from a final report so the published version shows only the body content.

Frequently Asked Questions

No — flattening is irreversible. The interactive AcroForm dictionary and annotation entries are removed entirely. Keep the original file if you might need to edit the fields again.
No. Page content streams (text, images, vector graphics) are preserved exactly. Only AcroForm form fields are merged into the page content; standalone annotation entries (/Annots) are removed.
Each widget's visual appearance is embedded into every page that referenced it instead of being shared. For complex forms with many fields, this adds bytes. Run the result through PDF Compressor to recover space.
No — link annotations live in the same /Annots array, so removing annotations also removes clickable links. The visible link text stays on the page but is no longer clickable. If preserving links matters, leave the annotation toggle off, or skip flattening entirely.
It can be flattened, but the existing signature will be invalidated. This is a property of the PDF signing standard — any byte change to a signed page invalidates the signature, no tool can avoid it.
No. pdf-lib refuses to parse encrypted streams. Remove the password with the PDF Password tool first, flatten, then re-encrypt if needed.
No. Flattening runs in the page itself, never on a server using pdf-lib. The PDF stays in tab memory and is never transmitted.
Field values render exactly as they did when interactive — pdf-lib writes the same appearance streams the viewer was already showing. Field borders and colors are preserved.
Flattening keeps text as selectable text and graphics as vectors — only the interactive layer is collapsed. Rasterizing (in PDF Compressor's High mode) turns every page into a JPEG image and loses all selectable text.
Not in this tool — flattening applies to the whole document. For selective control, use PDF Editor to delete specific fields or annotations before flattening.
Maintained by the WebToolVerse teamLast updated Suggest an edit

Advertisement

What's next?