Do form values come back?

Yes, for forms that keep live fields. PDF values do not come back where you expect them. Here is what each kind of form returns.

The short answer

The values you typed into a PDF form come back. They sit in one block after the text of the last page. They do not sit next to the printed labels.

Each line holds the internal field name and the value. The name is what the form author chose. It is not the label on the page.

A Word form is easier. Its values come back inline, next to the label.

The engine is tika-server-standard 3.3.1.

Source: terraform/lambda-layers/build/versions.env (versions.env: TIKA_VERSION), accessed 2026-10-02.

What comes back, case by case

We ran each form through Tika with the same call the API makes. Every row shows its source.

What ten kinds of form field return today
InputWhat comes backSource
A PDF text field (AcroForm)The value comes back, but not next to its printed label. It sits in one block after the text of the last page. Each line starts with a tab, then the internal field name, then the value. The printed label and the tooltip do not come back.Tika probe: PUT /tika, Accept: text/plain
marketing/test/fixtures/forms/README.md
(accessed 2026-10-02)
A PDF checkboxThe export value comes back, not a tick. A ticked box gave Yes. An empty box gave Off. The form author picks these words, so another form can give On or any other word.Tika probe: PUT /tika, Accept: text/plain
marketing/test/fixtures/forms/README.md
(accessed 2026-10-02)
A PDF radio groupOne line for the whole group. It holds the export value of the selected button.Tika probe: PUT /tika, Accept: text/plain
marketing/test/fixtures/forms/README.md
(accessed 2026-10-02)
A PDF dropdownThe selected choice comes back in square brackets.Tika probe: PUT /tika, Accept: text/plain
marketing/test/fixtures/forms/README.md
(accessed 2026-10-02)
An empty PDF fieldThe line stays. The value is empty. The line ends with a space.Tika probe: PUT /tika, Accept: text/plain
marketing/test/fixtures/forms/README.md
(accessed 2026-10-02)
A multi-line PDF fieldThe line break stays in the text format. The second line has no tab. Code that reads one field per line must handle this.Tika probe: PUT /tika, Accept: text/plain
marketing/test/fixtures/forms/README.md
(accessed 2026-10-02)
A flattened PDF formThe value is ordinary page text. It comes back on its page, but in the order the PDF draws it. In our test file, the policy number came after Notes:, not after Policy number:.Tika probe: PUT /tika, Accept: text/plain
marketing/test/fixtures/forms/README.md
(accessed 2026-10-02)
A PDF with an XFA formThe values come back after the page text, as in an AcroForm. Each line carries the caption of the field. A field with no caption shows its internal name, such as TextField1. We tested one file, from Tika's own test set.Tika's own XFA test file, run through Tika
(accessed 2026-10-02)
A Word content controlThe text comes back inline, next to its label. A checkbox control comes back as the glyph Word stores: ☒ for ticked, ☐ for empty.Tika probe: PUT /tika, Accept: text/plain
marketing/test/fixtures/forms/README.md
(accessed 2026-10-02)
A Word legacy form fieldThe text field comes back inline, next to its label. In our file, the checkbox came back as |X|. Its default was set to on.Tika probe: PUT /tika, Accept: text/plain
marketing/test/fixtures/forms/README.md
(accessed 2026-10-02)

Real output

Each sample is the text that came back. A tab starts each field line. The empty field ends with a space.

A PDF text field (AcroForm)

In

textfield(name="full_name", tooltip="Full name", value="Ada Lovelace")

Out

	full_name: Ada Lovelace

A PDF checkbox

In

checkbox(name="smoker", checked=True) and checkbox(name="married", checked=False)

Out

	smoker: Yes
	married: Off

A PDF radio group

In

radio(name="plan", value="premium", selected=True)

Out

	plan: premium

A PDF dropdown

In

choice(name="country", value="Ireland", options=["France","Ireland","Spain"])

Out

	country: [Ireland]

An empty PDF field

In

textfield(name="policy_no", value="")

Out

	policy_no: 

A multi-line PDF field

In

textfield(name="notes", fieldFlags="multiline", value="Line one\nLine two")

Out

	notes: Line one
Line two

A flattened PDF form

In

policy_no filled with "PN-12345", then flattened and the form removed

Out

Notes:

PN-12345

A PDF with an XFA form

Out

	School Name: my_school
	Grade Level: my_grade_level

A Word content control

In

a content control with the text "Grace Hopper", then two checkbox controls

Out

Name: Grace Hopper
Remote worker: ☒
Needs parking: ☐

A Word legacy form field

In

a FORMTEXT field with the text "2026-11-02", then a FORMCHECKBOX

Out

Start date: 2026-11-02
Has laptop: |X|

How to find the values in the response

The response has no flag that says "form". You must look for the block. The signal depends on the output format.

  • text (the default). Look at the end of the text. The lines that start with a tab are the field values. Everything above them is page text.
    	full_name: Ada Lovelace
    	policy_no: 
    	smoker: Yes
  • format=markdown. The values are a numbered list at the end. A tool that escapes Markdown also escapes the underscore and the brackets. A multi-line value joins to one line.
    1. full\_name: Ada Lovelace
    2. policy\_no:
    3. smoker: Yes
  • format=json. The last element has type list and ordered true. Its page is null, and so is the page of every item. Page content carries a page number. Nothing in the element says form, so a real numbered list at the end of a document looks the same.
    { "type": "list", "ordered": true, "page": null }

A numbered list at the end can also be a real list. Check the field names before you trust the block.

How to pair a value with its label

The text cannot do this. A field name such as full_name is not the printed label. When you need names, types and tooltips, read the form on your own machine. Use txtfetch for the rest of the document.

  • pypdf, for field names, types and values. Run PdfReader(path).get_fields() on your own machine. It gives each field with its type, value and tooltip, so you can match a value to its label. On our fixture, get_form_text_fields() gave full_name, policy_no and notes with their values. Read the source →
  • Scanned paper forms. A scan has no form fields. It is an image. Typed entries go through OCR. Handwriting does not come back on the standard tier. Read more →
  • Photos and scans of forms. Send the image to the image route. We did not measure tick marks. Read more →

Scanned forms, signatures and the premium tier

We did not measure signature fields. We did not measure tick marks on a scan. We did not measure a Word or PDF form on the premium tier. We make no claim about them.

?quality=premium is sold as a tier, but it does not run today. VLM_ENABLED defaults to false, and no operator has switched the tier on in production. A premium request downgrades to the standard Tika path instead.

Frequently asked questions

Do the values from a filled-in PDF form come back?
Yes, for forms that keep live fields. The values come back in one block after the text of the last page. Each line holds the internal field name and the value. They do not sit next to the printed labels.
How do I match a value to its label?
The text does not do it. The field name is a name chosen by the form author, such as full_name, not the label on the page. To get names, types and tooltips, read the PDF with pypdf on your own machine.
What does a checkbox return?
Its export value. A ticked box gave Yes and an empty box gave Off in our test. A different form can use On, or any other word. Check the form before you map the values.
What if the form is flattened?
Then the values are page text. They come back on their page, in the order the PDF draws them. A value can come after a different label than the one it belongs to.
Does txtfetch read XFA forms?
Yes, in our test. The values came back after the page text, with the caption of each field. A field with no caption showed its internal name, such as TextField1. We tested one file from Tika's own test set. Test your own files.
What comes back from a Word form?
The text of a content control or a legacy form field comes back inline, next to its label. A ticked checkbox control comes back as ☒. An empty one comes back as ☐.
Does txtfetch read signature fields or tick marks on a scan?
We did not measure either one. Do not rely on them until you test your own files.
Does the premium tier read forms?
We did not measure forms on the premium tier. We make no claim about it. The premium tier does not run today, so a premium request downgrades to the standard Tika path.

Watch it run, then take a key.

The playground replays a real recorded response for every sample document.

Open the playground →

Get an API key →