learningtech
learningtech

Reputation: 33725

FDF - how to check a checkbox?

I'm using FDF to populate a PDF template. On my PDF template, I have a checkbox and radio field called c1 and r1 respectively. What's the syntax I should use in my FDF file to check or select the c1 and r1 field?

I tried things like

<</T(c1)/V(1)>>
<</T(c1)/V(checked)>>
<</T(c1)/V(on)>>
<</T(c1)/V(true)>>

But none of them work.

Upvotes: 18

Views: 15692

Answers (6)

Kathara
Kathara

Reputation: 1290

For all those for which above answers didn't work out I've been searching for a solution for a long time with PDF version 1.6. I then exported the form data (1) directly with Adobe Acrobat Pro DC and found another way which in the end worked out for me:

<</T(c1)/V/Off>> // this is non-checked
<</T(c1)/V/Yes>> // this is checked

As for the checked value (/Yes) this depends on the export value of the field. By standard the checkboxes in PDF forms have the value "yes" in the language your program is in.

Hope this helps others as well.


Footnote

(1) Important content from link:

You can use the "Prepare Form => More => Export data" to create an FDF file with the field name and data values. It will also contain the address of the PDF from which the data was extracted.

Upvotes: 4

Aku
Aku

Reputation: 862

The value passed to check the box is often "Yes" and "Off" - However, this is only the default value and it can be changed from "Yes" to almost any value at all (this is controlled by the export value of the document, as pointed out by others).

If you are looking to procedurally get the on/checked state value (which you will need to reliably set this checkbox as checked), it is contained in the appearances "AP" dictionary of the field. That dictionary should contain another dictionary "N", and each key is one of two values for the checkbox. The first key will be the unchecked value (usually "Off") and the second key will be the checked value (usually "Yes"). How you do this entirely depends on the API.

If you use pdftk from the command line, you can see what the expected values are using the command dump_data_fields: Eg.

pdftk document.pdf dump_data_fields 

Will show something like this:

---
FieldType: Button
FieldName: basform
FieldFlags: 0
FieldValue: No
FieldJustification: Left
FieldStateOption: Off
FieldStateOption: basic_forms            <---- Checked value expected by FDF

Here we can see that the checked state is actually expecting "basic_forms" and not "Yes". I believe the other state is always "Off", but that may depend on the language your program is using (the default "Yes" value certainly does).

Upvotes: 19

Footniko
Footniko

Reputation: 2752

For me works:

<</T(c1)/V(0)>>

for checked values and

<</T(c1)/V(Off)>>

values by default.

Upvotes: 0

ZalemCitizen
ZalemCitizen

Reputation: 554

Just to make a precision. It seems that to check an individual checkbox you need to use the export value you set when creating your box in Acrobat. This value is, indeed, by default to "Yes"

Upvotes: 12

Rachit Shah
Rachit Shah

Reputation: 1

Yes From JAVA ALSO we can pass value "Yes" to check the checkbox in pdf or fdf thanks.... Rachit Shah

Upvotes: -3

learningtech
learningtech

Reputation: 33725

I found the answer. To check, use

<</T(c1)/V(Yes)>>

To turn off, use

<</T(c1)/V(Off)>>

I found the answer on this page: http://www.4dcodeexchange.net/fdfformbuilder.htm

Excerpt

Checkboxes come in 2 flavors grouped and individual. Individual checkboxes will usually have a value of "Yes" or "Off". Grouped checkboxes are different in that each checkbox will have its own value. If you have problems with your FDF, look here first.

Upvotes: 23

Related Questions