100% client-side — files never leave your device

Filling PDF Forms, and Why You Should Flatten Them

You fill in a PDF form, send it, and the recipient reports that half the boxes are empty. Nobody did anything wrong. Interactive forms are a layer sitting above the page, and not every program that opens a PDF respects that layer.

What an interactive form actually is

A fillable PDF contains AcroForm fields: named widgets — text boxes, checkboxes, radio groups, dropdowns — each with a value, and each with a generated appearance stream that draws the current value on screen. The page underneath has the lines and labels. Your answers live in the field objects, not in the page content.

That separation causes the classic failures:

  • A reader that ignores form fields shows a blank form. Some mobile previewers, some browser viewers and plenty of printing pipelines do exactly this.
  • Values can be edited by the recipient. A filled form is not a statement; it is a document with editable inputs.
  • Appearances can disagree with values. If a field's value was set without regenerating its appearance, the file says one thing and displays another.
  • Cleared fields can leave traces. Emptying a box updates the value; older appearance streams and incremental-save history may still hold what you typed.

Flattening

Flattening draws each field's current appearance directly into the page content and then removes the field. Afterwards there is no form — just a page that looks exactly like the filled form did.

What you gain:

  • It renders identically everywhere, because it is now ordinary page content.
  • Nobody can quietly change an answer.
  • It prints as displayed, every time.
  • Field-level leftovers go with the fields.

What you lose:

  • Nobody can correct a typo either — including you. Keep the unflattened copy.
  • Machine extraction by field name is no longer possible.
  • It is one-way. There is no unflatten.

The rule that covers almost every case: fill unflattened, send flattened. Keep the editable version in your own records, flatten the copy that leaves your hands. The form filler here reads the real field list from the document, fills the values locally and flattens on export.

When there are no fields at all

Plenty of “forms” are just printed lines — a scan, or a PDF exported from a word processor with no interactive fields. There is nothing to fill. Use the PDF editor to place text where the boxes are and add a signature, which produces the same result and is often faster than hunting for fields that do not exist. If the page is a scan and you want the labels searchable as well, run OCR first.

Signatures, plainly

Drawing or placing an image of your signature is an image of a signature. It is accepted for a great many everyday purposes and it is not a cryptographic digital signature — it proves nothing about who added it or whether the document changed afterwards. If you need that guarantee you need a certificate-based signature from a provider your counterparty trusts. Knowing which one you are producing is the whole point.

Why filling locally is the right default

Forms are where the sensitive data is: national insurance numbers, bank details, medical histories, salaries. Filling a form on a website that processes it server-side means typing all of that into someone else's infrastructure. Here the document is opened, filled and flattened entirely in your tab — the same reasoning as merging PDFs without uploading them, applied to the case where the file contents are about you.

More from the blog