Sample PDF Form Generator
Generate a real, fillable PDF form in seconds — text fields, checkboxes, radio buttons, dropdowns and list boxes, with genuine PDF-level Required flags. Six templates, pre-fill or blank, exact-size padding and AES-256 password protection. Runs entirely in your browser.
Quick Tips for Generating the Right Test Form
Features
A Rectangle Is Not a Text Field
Plenty of "sample form" files circulating online are a document with boxes drawn around where fields should be — visually convincing, functionally useless the moment your code tries to call getField() or read a value out of it. There's nothing there to read. A drawn box is page content; a form field is a distinct object in the PDF's structure with a name, a type and its own properties, sitting in the file's /AcroForm dictionary independent of whatever's drawn on the page around it.
Everything this generator produces is the second kind. A text field becomes an actual /Tx widget, a checkbox a genuine /Btn widget, a dropdown a real /Ch field — built through pdf-lib's AcroForm API directly in your browser, so code written to read or fill PDF forms can be pointed at the output and tested exactly as it would be against a real submission.
Six Forms, One Job Each
All Field Types is the one to reach for when the goal is coverage rather than realism — a single page carrying one of every supported field kind, built for confirming a parser handles text inputs, checkboxes, radio groups, dropdowns and list boxes without missing one. Contact Form, Event Registration and Customer Survey are shorter, single-page templates styled after forms people actually fill out day to day. Job Application and Patient Intake are the two built to run long — both span two pages on purpose, so a test can confirm fields stay correctly associated with the right page once a form outgrows one.
Every template ends where a real one would: a declaration checkbox, a signature line, sometimes a date field beside it — because a form that stops at the questions and skips the sign-off doesn't test anything a submission workflow actually depends on.
The signature field itself is deliberately never pre-filled, even with Pre-fill Sample Data turned on for everything else. A typed name in a signature box would be a lie the generator is telling on your behalf, and the one thing every template needs to leave genuinely blank is the part a real person is supposed to provide themselves.
Fifty Copies, Zero Name Collisions
Number of Forms turns one template into a batch — up to fifty repeated copies in a single file, each on its own page or pages. The part that isn't obvious from the setting's name: every field in every copy gets a copy-specific name prefix behind the scenes. The PDF spec treats fields that share a name as one linked field, so without that prefixing, typing into copy 12's email address would silently overwrite copy 1's the moment a viewer synced them. A batch of fifty forms with colliding names isn't fifty independent test records, it's one record wearing fifty masks.
With unique names guaranteed, a 30-copy Job Application file behaves in testing exactly like thirty separately-submitted applications bundled together — which is the point, since collecting thirty real ones to load-test a parsing pipeline isn't something most teams have sitting around.
None of those fifty copies ever leave your browser to get built, which matters more here than on a plain document generator: Patient Intake and Job Application are templates whose real-world counterparts carry genuinely sensitive data, and even though every value this tool writes is fictional, there's no server in the loop to send fictional-but-realistic-looking records to in the first place.
Required Isn't Just an Asterisk
Mark Required Fields does two things, not one. It adds the red asterisk you'd expect next to a field's label, and separately it sets the PDF's own Required flag on that field — the same property Acrobat checks before it will let a form be submitted or flattened. Plenty of hand-built "sample forms" only do the first part: an asterisk that's purely cosmetic, with nothing behind it for a validator to actually detect. Turn the switch off and both go away together, and every field in the form becomes genuinely optional, which matters if the test is specifically checking that your code doesn't over-enforce fields that shouldn't be mandatory.
Blank or Already Answered
Pre-fill Sample Data decides which of two different tests you're running. On, and every field arrives populated with a realistic value — a name, a selected radio option, a checked box — which is what you want when testing whether your code can correctly read values back out of a submitted form. Off, and the exact same template arrives completely empty, which is what a real person opens before they've typed anything, and the right fixture for testing a fill-in flow or handing a form to actual test users without their answers being pre-biased by whatever happened to already be in the boxes.
Who Actually Opens These
Backend developers reach for it most often, usually to confirm a field-extraction API correctly identifies every AcroForm type in one pass rather than three of the six. QA teams building regression suites want a steady supply of independently-named forms rather than the same three recycled PDFs everyone on the team already knows the quirks of, since a fixture everyone's memorized stops catching anything new. E-signature and document-workflow teams use it to check that a signing flow actually locates and highlights required fields instead of just displaying them and hoping. And a fair number of students and instructors use it for exactly the reason it exists at all — needing something that looks and behaves like a real form without using anyone's real paperwork to get it.
The Limits
This generator only produces genuinely interactive fields — it's not the tool if you need a flat, non-interactive document, which is what Sample PDF File is for, or a scanned, image-only form with no field structure at all, which is a different generator entirely. It also builds new forms rather than editing ones you already have, so it doesn't replace the site's PDF Form Filler when there's a real form PDF whose fields already need filling in.
A couple of practical notes: Custom file size lands exactly on target without a password, and rounds up by no more than about 15 bytes — never down — with Password Protection on, since AES-256's block padding is part of the standard rather than something this tool controls. If a form needs its fields locked down instead of left fillable, run it through PDF Flattener afterward — flattening isn't something a form generator should do by default, since the entire point of the output is that the fields stay live. And if radio options or a list box start looking cramped, it's almost always the page size, not the field count — A5 with wide margins leaves noticeably less room per line than A4 or Letter, and switching page size fixes it faster than trimming the option list.