Skip to content
DevToolKit

PDF Fillable Forms

Fill out PDF forms online for free. Complete interactive form fields, checkboxes, and dropdowns. All processing in your browser — no files uploaded.

pdf

Drop your PDF here, or click to browse

Files are processed entirely in your browser — never uploaded

Processed locally
Was this tool helpful?

How to Use

Create fillable PDF forms in four steps:

  1. Upload your PDF — Drag and drop or click to browse. The tool renders a visual preview of the first page so you can see exactly where to place form fields.
  2. Select a field type — Choose from Text Field, Checkbox, or Dropdown in the toolbar. The selected type highlights to show it is active.
  3. Click to place fields — Click anywhere on the page preview to place a field at that position. Each field appears as a colored overlay rectangle. Navigate between pages using the arrow buttons to add fields on any page.
  4. Configure and create — Edit field names in the sidebar, add dropdown options as comma-separated values, then click Create Form to generate the fillable PDF for download.

All processing runs in your browser using pdf-lib. No files leave your device.

About This Tool

The PDF Fillable Forms Creator adds interactive AcroForm fields to existing PDF documents. AcroForm is the original interactive form technology defined in PDF specification ISO 32000-1:2008 and supported by every major PDF viewer since Acrobat 3.0 in 1996. Unlike XFA forms, which require Adobe-specific rendering engines, AcroForm fields are universally compatible across platforms and viewers.

AcroForm specification and field types

The AcroForm dictionary resides in the PDF document catalog under the /AcroForm key. It contains a /Fields array referencing all top-level form field dictionaries. Each field dictionary defines its type via the /FT key: Tx for text fields, Btn for buttons and checkboxes, and Ch for choice fields like dropdowns and list boxes. The field's name is stored in /T, its current value in /V, and its visual bounds in /Rect as four coordinates defining the lower-left and upper-right corners.

Coordinate mapping: CSS to PDF

PDF coordinate systems place the origin at the bottom-left corner of the page, with the y-axis pointing upward. Web browsers use a top-left origin with y pointing downward. This tool handles the conversion automatically: when you click on the page preview at position (x, y) in CSS coordinates, the processor computes the PDF coordinate as pdfY = pageHeight - cssY - fieldHeight. The render scale factor is also accounted for — the preview may display at a different resolution than the actual PDF page dimensions, so click coordinates are scaled proportionally before being written to the field's /Rect dictionary.

How pdf-lib creates form fields

The pdf-lib library provides a high-level PDFForm API for AcroForm manipulation. Calling doc.getForm() returns the form object, which provides factory methods: createTextField(name), createCheckBox(name), and createDropdown(name). Each method creates a field dictionary and registers it in the AcroForm's /Fields array. The addToPage(page, options) method creates a widget annotation at the specified coordinates and links it to the field dictionary. When the document is saved, pdf-lib generates the necessary appearance streams so the fields render correctly in all PDF viewers.

Appearance streams and cross-viewer compatibility

Every form field widget annotation contains an /AP (appearance) dictionary that defines how the field looks in its normal, rollover, and down states. pdf-lib automatically generates these appearance streams when fields are created, ensuring consistent rendering across Adobe Acrobat, macOS Preview, Chrome's PDF viewer, Firefox's PDF.js, and mobile PDF readers. Without appearance streams, some viewers show empty rectangles instead of the expected field widgets.

Once your fillable PDF is created, use PDF Form Filler to fill in the fields directly in your browser. To flatten a completed form into static content, use PDF Flatten. For adding text stamps or watermarks, see PDF Add Stamps. To reorganize pages after adding form fields, try PDF Organize Pages.

Why Use This Tool

Creating fillable PDF forms in the browser solves practical document workflow challenges:

  • Convert static PDFs to interactive forms — Many organizations distribute non-interactive PDFs that require printing, handwriting, and scanning. Adding AcroForm fields to these documents eliminates the paper-based workflow entirely.
  • No Adobe Acrobat license needed — Acrobat Pro DC ($22.99/month as of March 2026) is the traditional tool for creating fillable forms. This browser-based alternative provides core form creation without any subscription cost.
  • Small business and nonprofit use — Organizations that distribute intake forms, application forms, or order forms can convert existing PDF templates into fillable versions without specialized software budgets.
  • Education and training — Instructors can add interactive answer fields to worksheets, quizzes, and evaluation forms distributed as PDFs, enabling digital submission from students.
  • Internal operations — IT departments, HR teams, and office managers can quickly add form fields to policy acknowledgment forms, equipment checkout sheets, and approval workflows.
  • Privacy-sensitive documents — PDFs containing medical intake information, financial data, or legal agreements should not be processed on third-party servers. This tool runs entirely in your browser, keeping your documents private.

Every document stays on your device — the PDF is never uploaded to any server. The tool uses pdf-lib for form field creation and pdfjs-dist for visual page rendering, both running as WebAssembly and JavaScript in your browser.

FAQ

What form field types are supported?
Text fields, checkboxes, radio buttons, dropdown menus, and date fields are all supported.
Can I save the filled form?
Yes. Download the completed PDF with all your entries saved in the form fields.
Is my data uploaded?
No. All form filling happens locally in your browser. Your data never leaves your device.