Fill PDF Form Online - Complete AcroForm Fields Free
Detect text fields and checkboxes with pdf-lib getForm(), fill in your browser, optionally flatten. 50 MB max - not all field types supported.
Upload Fillable PDF
Loading PDF tools...
Form Fields
Upload a fillable PDF to see text fields and checkboxes here.
Result
No filled PDF yet
Upload a fillable PDF, complete fields, and click Fill
What Is an Online PDF Form Filler?
An online PDF form filler completes interactive AcroForm fields inside a PDF without desktop Acrobat. Tax forms, HR onboarding packets, rental applications, and government PDFs ship with text boxes and checkboxes wired to a form dictionary. This page uses pdf-lib getForm() to read that dictionary in your browser, renders inputs for supported field types, writes your answers with setText, check, or select, and optionally flatten() to bake values into static page content.
Processing is browser-only via helpers from @/lib/pdf-io: validatePdfUpload enforces the 50 MB cap, getPdfPageCount confirms readability, and fileFromBytes packages the download. Nothing is uploaded to a server - suitable for tax IDs, SSN fields, and HR data subject to your device policy.
We are honest about limits: text fields and checkboxes work fully; radio groups appear as dropdowns with partial support; dropdowns, list boxes, signature fields, and button actions are skipped; encrypted PDFs fail without a password prompt; XFA-only legacy forms (some government templates) are not AcroForm and will not scan. Filling forms is not the same as signing - use PDF sign for visual signature overlays after fields are complete.
Flattening is optional but important for submissions. When checked, pdf-lib form.flatten() burns values into page content and removes widgets so recipients cannot edit answers. Leave flatten off when a second party must complete remaining fields in Acrobat or Chrome. Flatten is irreversible - keep the original blank PDF if you might need to change answers.
How to Fill a PDF Form - Step by Step
Most fillable forms take three to five minutes depending on field count. Verify field detection before typing sensitive data.
- Upload a fillable PDF - Drag and drop or browse. validatePdfUpload enforces PDF type and 50 MB. pdf-lib getForm() scans for AcroForm fields. Flat scanned images without interactive widgets show zero fields - that PDF is not fillable here.
- Review detected fields - Text fields become inputs; checkboxes toggle on/off. Radio groups may show as dropdowns with partial support. Field names match internal AcroForm names (often verbose like topmostSubform[0].Page1[0].f1_1[0]) - match labels on the PDF visually.
- Enter your answers - Type into text inputs and check boxes. Tab through fields in DOM order. No JavaScript calculations from the original form run in-browser - totals you see in Acrobat may not auto-update here.
- Choose flatten option - Check Flatten form after filling to lock answers into page content for submission; leave off if someone else must complete remaining fields.
- Fill and download - Click Fill PDF Form. pdf-lib writes values, optionally flattens, and saves locally. Download adds a processed copy; your original upload stays untouched.
Worked Example - Before and After
A freelancer receives a W-9 tax form PDF from a new client. The file has AcroForm text boxes for legal name and business name plus a checkbox for exempt payee status. They need to return a completed copy tonight without installing Acrobat or uploading tax identifiers to a random cloud form filler.
Before
Blank W-9 tax form PDF with empty Name, Business name, and Exempt payee checkbox fields.
After
Same PDF with text fields populated and checkbox checked; flattened copy ready to email - fields no longer editable.
Workflow on this page: upload the IRS-style PDF, confirm text and checkbox fields appear in the list (if zero fields, the PDF is flat or XFA-only), type the legal name and business name, check Exempt payee if applicable, enable flatten so accounting cannot accidentally edit the TIN field later, click Fill PDF Form, download, and open in Chrome to verify appearances. If a radio group for LLC classification appears as a dropdown, pick the option and verify visually - radio support is partial by design. Add a visual signature on PDF sign only if the form needs an ink-style overlay beyond AcroForm fields.
Real-World Use Cases
1. W-9 and vendor tax forms
Freelancers fill name, business name, address, and checkbox classifications before emailing accounting - locally, without SaaS upload queues. Tax identifiers stay on-device until the user attaches the download to email. Flatten prevents recipients from accidentally clearing the TIN field in a PDF reader.
2. HR onboarding packets
New hires complete emergency contact text fields and policy acknowledgment checkboxes on day one. Flatten produces a non-editable record for the personnel file. HR should verify field count matches the official template - missing dropdown fields may need desktop Acrobat for unsupported widget types.
3. Rental and lease applications
Property managers send fillable PDFs; tenants complete text fields in-browser and return flattened copies as attachments. Browser-only processing suits applicants uncomfortable uploading SSN and income data to unknown websites. Managers merge applications with credit reports on PDF merge after review.
4. Medical intake forms
Clinics prefer on-device filling for PHI when policy allows browser tools on workstations. Symptoms, medications, and consent checkboxes write through getForm() without cloud form vendors. This is not a substitute for certified e-sign on treatment consents - use appropriate platforms when regulations require audit trails.
5. Insurance claim supplements
Standard carrier PDFs with AcroForm text boxes for claim numbers, dates, and descriptions fill faster than print-sign-scan. Flatten locks the submission before upload to the carrier portal. Verify radio groups for loss type visually after download - partial support means some templates need spot-checking in Adobe Reader.
6. School permission slips
Parents fill student name fields and consent checkboxes on district PDFs from email links on mobile. Check field count before assuming mobile Acrobat is needed - many district forms are standard AcroForm. Drawn signatures on permission lines may still need PDF sign if the form has no signature widget.
7. Conference registration PDFs
Small events distribute fillable registration forms without maintaining a web form backend. Organizers collect flattened replies by email and merge name badges data manually. Works well for dozens of attendees; large conferences typically need dedicated registration SaaS.
8. Internal IT access requests
Checkbox fields for system access tiers plus text fields for manager name and business justification. Flatten prevents tampering after approval - requesters cannot re-open the PDF and add admin privileges. Stamp request ID in the footer on PDF headers & footers after filling.
9. Partial completion for multi-party forms
Leave flatten off so a second party can complete remaining fields in their own reader after you fill your section. Common on joint tax worksheets and two-signer government forms where each party owns different field groups. Communicate which fields are done to avoid overwrite confusion.
10. Pre-fill before merge or stamp
Fill the form first, then add headers on PDF headers & footers, watermark drafts on PDF watermark, or merge with exhibits on PDF merge. Field values survive merge when exhibits are separate files combined afterward - flatten before merge if the entire packet should be non-editable.
Supported vs Unsupported Field Types
This page targets standard AcroForm widgets. Exotic field types and legacy XFA forms need desktop Acrobat or specialized tools. Visual signing is a separate workflow.
| Field type | Support on this page | Typical workaround |
|---|---|---|
| PDFTextField | ✓ full text input | - |
| PDFCheckBox | ✓ toggle | - |
| PDFRadioGroup | Partial - dropdown UI | Verify in Reader after download |
| PDFDropdown / PDFOptionList | Not supported | Desktop Acrobat |
| Signature fields | Not supported | PDF sign visual overlay |
| JavaScript calculations | Not executed | Manual entry or desktop reader |
| XFA-only forms | Not supported | Export AcroForm copy from source |
| Encrypted PDF | Fails - unlock locally first | Print to PDF without security |
| Flat scanned form (no widgets) | Zero fields detected | Add fields in desktop editor first |
When getForm().getFields() returns an empty list, the PDF is not fillable in the AcroForm sense. Scanned paper is a flat image. When field count is high but dropdowns are missing, expect to finish unsupported widgets in Acrobat. Browser-only processing and 50 MB cap apply regardless of field type.
Common Errors and Honest Limits
These are the failures the UI surfaces on purpose, plus jobs this page will not pretend to do.
- No fields detected. The PDF is likely a flat scan or XFA-only form, not AcroForm. getForm().getFields() returns zero widgets. Add fields in a desktop editor or request an interactive export from the form issuer.
- Encrypted PDF. pdf-lib cannot decrypt without a password prompt on this page. Open in a desktop reader, print or export an unencrypted copy, then upload here.
- Radio groups look wrong. Custom appearances vary by template; verify in Adobe Reader or Chrome after download. Partial support is intentional - we do not claim full parity with Acrobat for every radio layout.
- Flatten is irreversible. Keep the original blank PDF if edits may be needed. Flattened files have no editable widgets.
- 50 MB cap. Oversized forms are rejected by validatePdfUpload before getForm() runs. Compress externally or split attachments if the government template embeds large fonts.
- Field names are opaque. AcroForm internal names display as-is in the UI. Match labels on the PDF visually rather than expecting friendly names like first_name.
- Dropdowns and list boxes skipped. PDFDropdown and PDFOptionList widgets do not render inputs. Complete those fields in Acrobat or ask for a template revision.
- JavaScript not executed. Auto-calculated totals, date formatting scripts, and show/hide logic from the original form do not run in-browser. Enter final values manually.
- Memory on huge files. Files near 50 MB may spike RAM during save and flatten. Close other tabs if the browser warns about memory.
Privacy & Security - 100% Browser-Side Form Filling
Form filling runs entirely in your browser. pdf-lib loads the PDF from memory, reads fields with getForm(), applies your inputs, and saves locally. Your document bytes are never POSTed to an API, never written to server logs, and never indexed. Suitable for tax identifiers, SSN fields, and HR data when local processing is required by policy. Clear downloads from shared machines after use.
We do not persist uploads or field values in localStorage. Closing the tab discards in-memory state except any file you explicitly downloaded. No account means no cross-device history. Sensitive answers exist only in the PDF you save - treat downloaded files like any other confidential document on your filesystem.
Frequently Asked Questions
What is an AcroForm fillable PDF?
AcroForm is the standard interactive form layer inside PDF files. Text boxes, checkboxes, radio groups, and dropdowns are field widgets backed by a form dictionary. pdf-lib getForm() reads that dictionary in your browser so you can set values without Adobe Acrobat. Flattening merges field appearances into static page content so recipients cannot edit answers afterward.
Does this PDF form filler upload my document?
No. pdf-lib loads the PDF from memory in your browser, reads fields with getForm(), applies your inputs, and saves locally. There is no server upload, account, or cloud retention.
Which form field types are supported?
Text fields (PDFTextField) and checkboxes (PDFCheckBox) render full inputs in the UI. Radio groups (PDFRadioGroup) appear as a dropdown with partial support - some PDFs use custom appearances that may not preview perfectly. Dropdowns, list boxes, signature fields, and button actions are not supported in this version. XFA-only forms (common in older government PDFs) will not load.
What does flatten do?
When Flatten form after filling is checked, pdf-lib form.flatten() burns field values into page content and removes interactivity. Recipients see your answers as regular text and graphics but cannot change them in a PDF reader. Leave flatten off if the recipient must edit remaining empty fields.
Why does my encrypted PDF fail?
Password-protected or certificate-encrypted PDFs must be unlocked before pdf-lib can parse the form dictionary. This page does not include a password prompt. Open the file in a desktop reader, print or export an unencrypted copy, then upload here.
What is the maximum file size?
Uploads are capped at 50 MB (MAX_PDF_BYTES) via validatePdfUpload from @/lib/pdf-io. Large government forms with embedded fonts may approach the cap; split or compress externally if needed.
Will filled values look exactly like in Acrobat?
pdf-lib updates field values and default appearances. Complex custom fonts, JavaScript calculations, and dynamic formatting scripts are not executed in-browser. Most standard IRS, HR, and rental forms render correctly; exotic templates should be spot-checked in your target viewer.
Can I fill a form that has no AcroForm fields?
No. Scanned paper forms are flat images without interactive widgets. Use a desktop editor to add fields first, or print and sign manually. This tool detects fields via getForm().getFields() - zero fields means the PDF is not fillable in the AcroForm sense.
Is flatten reversible?
No. Once flattened, field widgets are removed from the saved PDF. Keep the original unfilled upload if you might need to change answers later.
Is this PDF form filler free?
Yes. No registration, watermark, or daily quota. Fill as many supported forms as you need under the 50 MB limit.
Related PDF Tools
Form filling is often one step in a submission workflow. These sibling tools stay on the same origin:
- PDF sign - visual signature overlay when the form has no signature widget.
- PDF headers & footers - stamp branding and request IDs after filling.
- PDF watermark - DRAFT stamp on unfilled copies circulating for review.
- PDF merge - attach filled form to exhibits and supporting documents.
- PDF compressor - shrink large filled forms for email attachment limits.
- PDF split - extract only the filled pages from a large packet.
- PDF extract text - copy static labels from flat sections of hybrid forms.
- PDF rotate - fix sideways scanned pages before filling fields at the bottom.
Related Tools
Discover more free developer tools that might interest you.
PDF Compressor
Compress PDF files to reduce size
Use ToolPDF Split
Split PDF documents into multiple files
Use ToolPDF Merge
Merge multiple PDF files into one document
Use ToolPDF Delete Pages
Delete specific pages from PDF documents
Use ToolPDF Page Numbers
Add page numbers to PDF documents
Use ToolPDF Sort
Sort and rearrange pages in PDF documents
Use Tool