Fill a PDF form

Open a fillable PDF, type into its fields, tick the boxes, pick the options, and download the filled form. Free, no account, and the file never leaves your browser.

No PDF yet. You can also drop a file on this box.

How to fill in a PDF form

  1. Open the PDF. The tool lists every fillable field, grouped by page, and outlines them on the preview.
  2. Type into the text fields, tick checkboxes, and choose radio and dropdown options. The preview updates as you type.
  3. Click a box on the page to jump to that field, or click a field to see where it is.
  4. Tick Flatten if the recipient shouldn't be able to change the answers, then download.

How it works

pdf-lib reads the PDF's interactive form (AcroForm), sets the values you entered, and regenerates each field's appearance, so the answers show up in every viewer, including Preview on a Mac and phone apps. The rest of the document is untouched. Without Flatten, the fields stay editable in Acrobat and other readers. With it, the answers are drawn onto the page and the form fields are removed. The preview is drawn with pdf.js.

"This PDF has no fillable fields"

Many forms are just a printed layout with lines to write on, with no interactive fields. For those, open Sign PDF, choose Text, and click where each answer goes. That tool also adds your signature and the date. Forms made with Adobe LiveCycle (XFA) are another case: pdf-lib can't read XFA, so only the regular AcroForm fields such forms include, if any, show up here.

Filling forms from code?

If you generate the same document for many people (contracts, certificates, invoices), it's often easier to skip the PDF form entirely: build it as an HTML template, fill it with your data, and render it with the Shotmint API. Chromium does the layout, so fonts, tables and non-Latin text just work:

curl "https://shotmint.creasework.com/v1/pdf?url=https://example.com&format=A4" -H "X-API-Key: YOUR_KEY" -o filled.pdf

Each render is 1 credit. €5 buys 2,000 with no subscription, and credits never expire. Try it without a key on HTML to PDF, or see the guides for Python and Node.js.

Get 100 free renders API docs

FAQ

Is my PDF uploaded? No. Everything runs in JavaScript on this page. Your form and your answers stay on your device.

Why do some answers fail with "can't be shown in the standard font"? The form's fields use the standard PDF font, which covers Western European characters. Text in other scripts (Chinese, Arabic, Cyrillic, emoji) can't be drawn that way. Use plain Latin text, or print the form.

What about signature fields? They're listed but can't be filled here. Download the filled form, then open it in Sign PDF to draw or type your signature on the signature line.

Why does it say password-protected? Encrypted PDFs can't be changed without the password. Save a copy without the password in your PDF viewer, then try again.

What does "Export values as JSON" do? It saves the field names and your answers as a JSON file. Handy for developers mapping a form's field names before filling it in code.

Related: sign PDF, merge PDF, split PDF, add page numbers, watermark PDF, PDF to text, PDF to image, image to PDF.