FDF - how to check a checkbox?

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 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.


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.


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"


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).

Tags:

Fdf