How do I fill in a PDF form online?
Upload a fillable PDF and every field appears in a list: text boxes, checkboxes, dropdowns and radio buttons. Type your answers, then download a copy that stays editable or a flattened one ready to send. Your answers are written into the file in your browser. On our nine-field test form, all nine fields were found.
Why can't I type in my PDF form?
Usually the form has printed boxes and lines but no real fields, which is common with scanned forms. You will see "No form fields detected in this PDF." Add fields with the form builder, or type on the page with the PDF editor. Forms made with Adobe LiveCycle store their fields in a way this tool cannot read.
What does flattening a PDF form do?
It turns your answers into ordinary page text and removes the fields, so nobody can change an answer by clicking into it. In our flattened test, the field count dropped from nine to zero. Keep an unflattened copy too, because a flattened file cannot be turned back into a form here.
Why is the total field empty after I fill the form?
Forms that work out totals use small scripts, and this filler does not run them. In our test, Qty 3 and Price 20 left the Total field empty. Type calculated values yourself, or open the file in a reader that runs form scripts.
Field types and how each one is filled
Interactive PDF forms built to the AcroForm standard store every field as a named object with a type. The filler reads those objects with pdf-lib and lists them in the sidebar in the order the file declares them. On the sample form it found all nine fields: four single-line text fields, a multi-line comments field, a checkbox, a combo box, a radio group and a list box.
| Field type in the PDF | Shown as | What you can set |
|---|---|---|
| Text, single or multi-line | Text field, also typed directly on the page | Any text; existing values are loaded first |
| Checkbox | Checkbox | Ticked or not ticked |
| Radio group | Radio group | One option per group |
| Combo box | Dropdown | One of the options defined in the PDF |
| List box | Dropdown | One option, even if the list allows several |
| Signature | Listed | Nothing; signing needs a signing application |
| Push button and other types | Listed as unknown | Nothing |
A sample fill, step by step
Without flattening, the downloaded file still had all nine fields with the new values, so it can be edited again in any form-capable reader.
Calculation scripts do not run
Sample form: Qty, Price and a Total field whose calculation script multiplies them. Values entered: Qty 3, Price 20, plus a name, a country, a radio choice and a ticked checkbox. Total read back from the downloaded file: empty. pdf-lib writes the values you type but never runs the JavaScript stored in a form. Totals, date formatting and validation rules stay as they were. Type calculated values yourself, or open the file in a reader that runs form scripts and change one of the source fields there.
Flattened and fillable downloads
With Flatten fields ticked, pdf-lib draws each field's current appearance into the page and deletes the field. In the flattened sample the field count dropped from nine to zero, and the values became ordinary page text: pdftotext returned the typed name, "Germany" for the combo box and "● Plus" for the selected radio button.
Flatten the copy you send when answers should not be changed by clicking into a field. Keep an unflattened copy if anyone, including you, may need to correct an answer, because a flattened file cannot be turned back into a form here.
Characters a field can hold
Field appearances are drawn with Helvetica in the Windows-1252 (WinAnsi) character set. "Café Müller, Größe" saved without trouble in the sample. "Žemaitė" stopped the download with an error ending in WinAnsi cannot encode "ė" (0x0117). Letters such as Lithuanian ė and ą, Polish ł, Greek, Cyrillic, Arabic and Chinese, Japanese or Korean characters fall outside that set. For those, type the text onto the page with the PDF editor, which can draw it as an image, or fill the form in a desktop reader with suitable fonts.
When the field list is empty or the form changes
- "No form fields detected in this PDF." The file has printed boxes and lines but no interactive fields, which is common for scanned forms. Add fields with the form builder, or type on the page with the PDF editor.
- A dynamic XFA form, made with Adobe LiveCycle Designer, keeps its fields in XML that pdf-lib cannot read, so no fields are found.
- A hybrid form holds both AcroForm fields and XFA data. pdf-lib fills the AcroForm fields and removes the XFA data from the download: in the test copy, the XFA entry was gone after saving. Readers that preferred the XFA version will now show the AcroForm version.
- Encrypted files are refused at upload: "This PDF is password-protected." when an open password is needed, and "This PDF has permission restrictions set by its owner." when the file opens freely but is encrypted, because pdf-lib cannot save those correctly. Unlock it with the password tool first.
What the downloaded file reveals
pdf-lib sets the Producer to pdf-lib (https://github.com/Hopding/pdf-lib) and, when the form had no Creator, sets that too; both happened on the sample. The batch checker run on the filled sample labelled it "Strong indicators" in the generator column for that reason alone, even though a person typed every value. A metadata indicator describes the software, not who wrote the answers.
Your values never reach the server: they are written into the file in your browser and saved straight to your device as filled_ plus the original name. The server keeps only the original upload, which uses one check and is deleted by the hourly cleanup once it is more than 24 hours old. Sign the form after filling it; any save made after signing invalidates the signature.
Last updated . How these results were produced: a synthetic form with nine fields, including a list box and a total field with a calculation script, plus a copy marked as a hybrid XFA form, was filled in Node.js with the same pdf-lib 1.17.1 calls the form filler makes in the browser; the outputs were read back with pdf-lib, Poppler pdftotext and pdfinfo 26.10 and qpdf 12.4.