Type:: AcroForm:: ButtonField
AcroForm button fields represent interactive controls to be used with the mouse.
They are divided into push buttons (things to click on), check boxes and radio buttons. All of these are represented with this class.
To create a push button, check box or radio button field, use the appropriate convenience methods on the main
Form instance (
HexaPDF::Document#acro_form). By using those methods, everything needed is automatically set up.
Radio buttons are widgets of a single radio button field. This is also called a radio button group. Of the radio button group only one radio button (= widget of the radio button field) may be selected at all times. Each widget must have a different value to be distinguishable; otherwise the widgets with the same value represent the same thing. Although there is the
no_toggle_to_off field flag, no PDF viewer implements that; one needs to use check boxes for this feature.
Check boxes can be toggled on and off. One check box field may have multiple widgets. If those widgets have the same value, they will all be toggled on or off simultaneously. Otherwise only one of those widgets will be toggled on while the others are off. In such a case the check box fields acts like a radio button group, with the additional feature that no check box may be selected.
Field Flags¶ ↑
Only used with radio buttons fields. If this flag is set, one button needs to be selected at all times. Otherwise, clicking on the selected button deselects it.
Note: This deselectiong is not implemented in any tested PDF viewer. A work-around is to use multiple check box widgets with different on names.
If this flag is set, the field is a set of radio buttons. Otherwise it is a check box. Additionally, the :pushbutton flag needs to be clear.
The field represents a pushbutton without a permanent value.
A group of radio buttons with the same value for the on state will turn on or off in unison.
See: PDF1.7 s18.104.22.168
Public Instance Methods
Returns the array of Symbol values (minus the /Off value) that can be used for the field value for check boxes or radio buttons.
Note that this will only return useful values if there is at least one correctly set-up widget.
true if this button field represents a check box.
Returns the concrete button field type, either :push_button, :check_box or :radio_button.
Creates appropriate appearances for all widgets if they don't already exist.
The created appearance streams depend on the actual type of the button field. See
AppearanceGenerator for the details.
true the creation of the appearances can be forced.
Creates a widget for the button field.
true, then default values will be set on the widget so that it uses a default appearance.
If the widget is created for a radio button field, the
value argument needs to set to the value (a Symbol or an object responding to
#to_sym) this widget represents. It can be used with
field_value= to set this specific widget of the radio button set to on.
value is optional for check box fields; if not specified, the default of :Yes will be used.
AppearanceGenerator button field methods
Returns the default field value.
Sets the default field value.
Returns the field value which depends on the concrete type.
- Push buttons
They don't have a value, so
nilis always returned.
- Check boxes
For check boxes that are checked the value of the specific check box that is checked is returned. Otherwise
- Radio buttons
If no radio button is selected,
nilis returned. Otherwise the value (a Symbol) of the specific radio button that is selected is returned.
Sets the field value which depends on the concrete type.
- Push buttons
Since push buttons don't store any value, the given value is ignored and nothing is stored for them (e.g a no-op).
- Check boxes
falseas value to toggle all check box widgets off. If there is only one possible value,
truemay be used for checking the box, i.e. toggling it to the on state. Otherwise provide the value (a Symbol or an object responding to
#to_sym) of the check box widget that should be toggled on.
- Radio buttons
To turn all radio buttons off, provide
nilas value. Otherwise provide the value (a Symbol or an object responding to
#to_sym) of a radio button that should be turned on.
Initializes the button field to be a check box.
This method should only be called directly after creating a new button field because it doesn't completely reset the object.
Updates the widgets so that they reflect the current field value.