FDF File Documentation
Summary
An FDF (Forms Data Format) file holds only the data entered into a PDF form’s fields, exported separately from the form itself. It is not a document: it carries the field values, not the pages. Introduced by Adobe with Acrobat 3 in 1996 and standardised within ISO 32000, it uses PDF’s own object syntax and begins with the marker %FDF-. Its MIME type is application/vnd.fdf. To use one, import it back into the matching blank PDF form.
Technical details
| Feature | Value |
|---|---|
| Full name | Forms Data Format |
| File extension | .fdf |
| MIME type | application/vnd.fdf |
| Format type | PDF form-field data export (not a document) |
| Developer | Adobe Inc. (Adobe Systems) |
| Introduced | 1996 (Acrobat 3 / PDF 1.2) |
| Standard | ISO 32000 (PDF); FDF defined in Annex on forms |
| Open standard | Yes — part of the ISO 32000 specification |
| Base syntax | PDF object / dictionary syntax |
| Header marker | %FDF-1.2 (mirrors PDF’s %PDF-) |
| Magic number (hex) | 25 46 44 46 2D (ASCII %FDF-) |
| Core object | /FDF dictionary containing /Fields |
| Encoding | Text with PDF syntax; can contain binary object streams |
| Contains | Field names and values; optional pointer to source PDF |
| Does not contain | Pages, layout, the form itself |
| XML equivalent | XFDF (same data, XML syntax) |
| Related extensions | .pdf, .xfdf, .xdp |
| Specification | iso.org/standard/75839.html |
What is an FDF file?
FDF stands for Forms Data Format. It is Adobe’s format for carrying just the data entered into a PDF form’s fields, kept separate from the form itself. Adobe introduced it with Acrobat 3 in 1996 (PDF 1.2) and it was later folded into the ISO 32000 standard that defines PDF. An FDF is not a document: it has no pages and no layout. It contains the answers to a form, and a reader only turns those answers back into something visible by importing them into the matching blank PDF.
Because FDF holds only field values, it is tiny next to the PDF it belongs to. That is the whole point of the format. When a PDF form is submitted over the web or by e-mail, Acrobat can send only the FDF data to a server; the server processes it and can return FDF to repopulate the form. Shipping a few kilobytes of field data each way is far lighter than moving the full document. FDF is also used to pre-fill forms in bulk and to round-trip responses.
Built on PDF object syntax
An FDF file is written in the same low-level syntax as a PDF. It opens with the marker %FDF-1.2 at byte offset 0, mirroring the %PDF-1.x header of a PDF, and it uses PDF’s numbered indirect objects, dictionaries (<< >>), name objects (/Name) and strings. A parser that already reads PDF reads FDF with almost no extra code. A complete FDF for a two-field form looks like this:
%FDF-1.2
1 0 obj
<<
/FDF
<<
/Fields [
<< /T (first_name) /V (Ada) >>
<< /T (last_name) /V (Lovelace) >>
]
/F (invoice_form.pdf)
>>
>>
endobj
trailer
<< /Root 1 0 R >>
%%EOF
The structure is deliberately shallow. A single indirect object holds one /FDF dictionary, and the trailer points /Root at it. Everything the file exists to carry lives inside that /FDF dictionary.
The /FDF dictionary and the /Fields array
The /FDF dictionary is the container for the exported data. Its most important entry is /Fields, an array in which each element describes one form field. A field dictionary has two core keys:
| Key | Meaning |
|---|---|
/T | Title: the field’s partial name, matching the field name in the source PDF |
/V | Value: the data entered (a string, a name for checkboxes/radios, etc.) |
/Kids | Child fields, for hierarchical field names (parent.child) |
/F | (dictionary level) File specification pointing back to the source PDF |
Field names are matched by /T. When the FDF is imported, Acrobat walks the /Fields array and copies each /V into the form field whose name equals the corresponding /T. Hierarchical fields use /Kids so a fully qualified name like address.city is expressed as nested title parts. A text field’s value is a PDF string in parentheses; a checkbox or radio button’s value is a name object such as /Yes or /Off matching the appearance state defined in the form. Because the match is by name, an FDF is meaningless without the specific form it was exported from: the same field names must exist on both sides.
The optional /F entry is a file specification naming the PDF the data belongs to, so a reader can locate and open the right form. Other optional entries can carry annotations, JavaScript, or a submit status, but the field data is the substance of almost every FDF you will meet.
Importing FDF back into a form
Since an FDF is a companion to a blank PDF, using one means merging it into that form. In Adobe Acrobat or the free Acrobat Reader, open the source PDF and choose More › Import Data (older builds: Forms › Manage Form Data › Import), then select the FDF; the fields fill in. On the command line, pdftk does the same merge and can also write a finished, flattened PDF:
pdftk form.pdf fill_form data.fdf output filled.pdf
pdftk form.pdf fill_form data.fdf output filled.pdf flatten
The reverse operation, exporting a filled form to FDF, is how these files are created in the first place: Acrobat’s Export Data command, or pdftk form.pdf dump_data_fields and its form-data export, write the field names and values out. If you receive an FDF but not its form, there is no way to reconstruct the document from the data alone; you need the original blank PDF the values were captured against.
FDF and XFDF: two syntaxes, same data
Adobe later defined an XML-based sibling, XFDF, which carries the identical field data using an <xfdf> XML root instead of PDF object syntax. The same import target, the same field-name matching, and the same round-trip workflows apply; only the encoding differs. XFDF is often preferred for web and server pipelines because XML is easier to generate and validate with standard tooling, and it sidesteps the PDF-syntax parsing that FDF requires. Acrobat reads and writes both, and tools such as pdftk convert between them, so the choice is a matter of which syntax fits the surrounding system.
Provenance and the data an FDF carries
An FDF is a small data file of field values, not an executable, so opening or inspecting one is low risk. The realistic concerns are privacy and provenance rather than malware. An FDF can contain whatever a person typed into a form: names, addresses, identification numbers, so it should be handled like any form submission. Like PDF, the format can reference an external URL or the source PDF through its file specification, so only import FDF data into forms from senders you trust, and be wary of an unexpected FDF that points at a remote document. The everyday surprise, though, is not danger but confusion: people expect the filled-in form and receive a tiny data file that shows nothing on its own.
Frequently asked questions
Why isn't an FDF a document?
Because it stores only the data filled into a PDF form’s fields, exported separately from the form. It has no pages and no layout, so opened on its own it shows nothing useful. It is a companion to a specific blank PDF, and it only becomes a readable form when imported back into that PDF.
How do I open an FDF file?
Open the original blank PDF form in Adobe Acrobat or the free Acrobat Reader, then use More › Import Data and select the FDF; the fields fill in. To read the raw values without the form, open the FDF in any text editor, since it is PDF-syntax text.
What is the difference between FDF and XFDF?
Both hold PDF form data. FDF uses Adobe’s PDF object syntax and starts with %FDF-; XFDF stores the same field values as XML under an <xfdf> root. XFDF is newer and often preferred for web and server workflows. Acrobat reads and writes both.
References
- ISO 32000-2 (PDF 2.0) — includes FDF and forms
- Adobe — import and export PDF form data (FDF/XFDF)
- pdftk — fill PDF forms from FDF/XFDF
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.