PDF form basics

What is a fillable PDF form, and how to make one

Not every PDF with blank lines is a fillable PDF. Knowing the difference saves a lot of confusion, and knowing how to create a proper fillable PDF means you can use batch tools like FillPDFfromCSV on your own templates.

Flat PDF vs. fillable PDF: the actual difference

A flat PDF is essentially a picture of a document. It might have lines that look like form fields, but they're just drawn lines. You can't click on them, type into them, or extract data from them. A fillable PDF (the technical term is AcroForm) has interactive form elements embedded in the file: text boxes, checkboxes, radio buttons, dropdowns. You can tab between them, type into them, and save the values.

The key point is that each form field has a name, stored inside the PDF file. That name is what tools like FillPDFfromCSV use to match your spreadsheet column to the right field. A field named "EmployeeName" maps to a CSV column called "EmployeeName". A field named "Field1" is much harder to work with.

How to tell if your PDF is fillable

The quickest test: open the PDF in Adobe Acrobat Reader (free) or in Chrome's built-in PDF viewer. Click on what looks like a blank field. If a cursor appears and you can type, it's fillable. If nothing happens, it's flat.

In Acrobat Reader, you can also go to View, Show/Hide, Navigation Panes, Fields. If that panel shows a list of named fields, you have a proper AcroForm. If the panel is empty, the PDF has no form fields.

A third check: drop the PDF into FillPDFfromCSV. If the tool shows "0 fields detected", the PDF is flat or protected. If it shows a list of field names, you're good to go.

Why field names matter so much

When batch-filling from a spreadsheet, the field name is the only thing connecting a column of data to a spot on the PDF. If your fields are named "TextField1", "TextField2", "TextField3", you have to manually assign each one every time you run a batch. If they're named "CandidateName", "StartDate", "AnnualSalary", the tool maps them automatically.

Spend time on field names when you create your template. It's boring work, but you only do it once, and it saves remapping every run after that.

How to create a fillable PDF: three ways

Adobe Acrobat (paid, most reliable)

Open your PDF in Acrobat Pro. Go to Tools, Prepare Form. Acrobat will scan the document and try to detect form fields automatically from blank lines and boxes. It usually does a reasonable job on structured forms. After auto-detection, you can add, move, and rename fields manually. Double-click a field to open its properties and set the name. Acrobat's field tools are the most mature and handle edge cases like multi-line text and digital signature fields. The downside is the cost: Acrobat Pro is around $20 per month.

LibreOffice Writer (free, good for forms you build from scratch)

If you're building a form from scratch rather than converting an existing PDF, LibreOffice Writer is a solid free option. Design your document, then use View, Toolbars, Form Controls to add text boxes, checkboxes, and dropdowns. Right-click each control and go to Control Properties to set the Name field. This name becomes the PDF field name when you export. To export: File, Export As PDF, and check "Create PDF Form" in the export dialog.

The limitation with LibreOffice is that it's harder to add form fields to an existing PDF you didn't create there. For that, Acrobat or an online tool is easier.

Online tools (free, quickest for one-off templates)

PDF24, PDFescape, and Sejda all let you upload a PDF and add form fields in the browser. They're free for basic use. Upload your PDF, click to add a text field where you want it, give it a name, save. These are fine for simple templates with a handful of fields. They don't have the precision of Acrobat for complex layouts, and they do upload your file to their servers, which matters if the document is sensitive.

Checkbox and radio button field values

Text fields accept any string. Checkboxes and radio buttons work differently. Each checkbox has an "export value": a string that means "checked" for that field. In Acrobat, you set this in the field properties. The default export value is often "Yes" or "On". In your CSV, put that exact export value in the column mapped to the checkbox field, and the tool will check it. Put anything else (including a blank) and it stays unchecked.

To find the export value of a checkbox in your PDF, open it in Acrobat, right-click the checkbox, choose Properties, and look at the Options tab. The "Export Value" field shows the string you need in your CSV.

Read-only and protected fields

Some PDFs have fields set to read-only, or the whole PDF is protected with an owner password. FillPDFfromCSV can't write to read-only fields or edit a password-protected PDF. If your output PDFs have blank fields where you expected data, protection is a likely cause. Remove it in Acrobat (File, Properties, Security, change security to "No Security") or use the free PDF24 desktop app to unlock the file first.

Next steps

Once you have a fillable PDF with well-named fields, you're ready to batch-fill from a spreadsheet. The step-by-step walkthrough for Excel is at how to fill a PDF from Excel. For the general concept of one PDF per spreadsheet row, see PDF mail merge. For HR-specific workflows including offer letters, see batch-filling offer letters. All guides are on the guides hub.

Frequently asked questions

Can I add form fields to a scanned PDF?

A scanned PDF is an image. You can add form fields on top of it (Acrobat and PDFescape both allow this), but you're placing a field over an image of a line, not inside a real form structure. It works for batch filling, as long as you position the fields accurately so the typed text lands over the right blank. It's more work to set up than a native form, but it's a valid approach.

What's the difference between AcroForm and XFA?

AcroForm is the older, widely-supported format that virtually every PDF tool can read and write. XFA (XML Forms Architecture) is a more complex format that Adobe introduced for dynamic forms. Many tools, including pdf-lib (which FillPDFfromCSV uses), don't support XFA. If your PDF was created by certain enterprise systems (some government forms, SAP output), it might be XFA. The symptom is that the tool detects 0 fields even though the PDF looks interactive. The fix is to open it in Acrobat Pro and flatten/convert it to AcroForm format.

Do field names have to be unique?

In a well-formed PDF, yes. If two fields share the same name, changing one changes the other. This is intentional in some cases (like repeated header fields), but usually it's an accident. Tools like Acrobat warn you about duplicate names. If you're building a template, keep names unique and descriptive.

I created a fillable PDF in LibreOffice but the fields aren't showing in FillPDFfromCSV.

Make sure you exported with "Create PDF Form" checked in the PDF export dialog. Without that option, LibreOffice exports the form controls as flat graphics, not as interactive PDF fields. Re-export with the option enabled.

Can I use this tool without understanding any of this PDF internals stuff?

If someone gives you an existing fillable PDF with sensibly named fields, yes, you don't need to know any of this. Drop it into <a href="/">FillPDFfromCSV</a> with your CSV and map the columns. This guide is for people who need to create or fix their own template.