PDF Flatten
Make form fields permanent and lock annotation layers for archiving or signing.
100% Private
Runs entirely in your browser. 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. Flattening burns the annotation appearance streams into the page content and removes the /Annots entries, guaranteeing every viewer renders the document the same way.
PDF Flatten runs entirely in your browser using pdf-lib. The page's widgets are read with PDFForm.flatten() (which writes appearance streams in place) and annotations are merged via the same content-stream insertion path. Output is serialized with object stream packing enabled, identical to the original except the interactive layers are gone.
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. The tool warns about this before exporting.
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 the AcroForm widgets and /Annots entries are merged into the page and stripped.
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.
By default link annotations are flattened into static text, which loses clickability. If preserving links matters, use PDF Editor's annotation tools to verify the result, 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 entirely in your browser 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.
Advertisement