#include <Field.h>
Public Types | |
enum | Type { e_button, e_check, e_radio, e_text, e_choice, e_signature, e_null } |
enum | ActionTriggerEvent { e_action_trigger_keystroke = 13, e_action_trigger_format = 14, e_action_trigger_validate = 15, e_action_trigger_calculate = 16 } |
enum | Flag { e_read_only, e_required, e_no_export, e_pushbutton_flag, e_radio_flag, e_toggle_to_off, e_radios_in_unison, e_multiline, e_password, e_file_select, e_no_spellcheck, e_no_scroll, e_comb, e_rich_text, e_combo, e_edit, e_sort, e_multiselect, e_commit_on_sel_change } |
enum | TextJustification { e_left_justified, e_centered, e_right_justified } |
An interactive form (sometimes referred to as an AcroForm) is a collection of fields for gathering information interactively from the user. A PDF document may contain any number of Fields appearing on any combination of pages, all of which make up a single, global interactive form spanning the entire document.
PDFNet fully supports reading, writing, and editing PDF forms and provides many utility methods so that work with forms is simple and efficient. Using PDFNet forms API arbitrary subsets of form fields can be imported or exported from the document, new forms can be created from scratch, and the appearance of existing forms can be modified.
In PDFNet Fields are accessed through FieldIterator-s. The list of all Fields present in the document can be traversed as follows:
For a full sample, please refer to 'InteractiveForms' sample project.
To search field by name use FieldFind method. For example:
If a given field name was not found or if the end of the field list was reached the iterator HasNext() will return false.
If you have a valid iterator you can access the Field using Current() method. For example: Field field = itr.Current();
Using Flatten(...) method it is possible to merge field appearances with the page content. Form 'flattening' refers to the operation that changes active form fields into a static area that is part of the PDF document, just like the other text and images in the document. A completely flattened PDF form does not have any widget annotations or interactive fields.
Flags specifying various characteristics of the fields.
Interactive forms support the following field types:
Enumerator | |
---|---|
e_button | |
e_check | |
e_radio | |
e_text | |
e_choice | |
e_signature | |
e_null |
pdftron::PDF::Field::Field | ( | SDF::Obj | field_dict | ) |
Construct a PDF::Field from a SDF dictionary representing a terminal field node.
field_dict | the SDF dictionary to construct the field from. |
pdftron::PDF::Field::Field | ( | const Field & | p | ) |
pdftron::PDF::Field::~Field | ( | ) |
void pdftron::PDF::Field::Destroy | ( | ) |
Frees the native memory of the object.
void pdftron::PDF::Field::EraseAppearance | ( | ) |
Removes any appearances associated with the field.
SDF::Obj pdftron::PDF::Field::FindInheritedAttribute | ( | const char * | attrib | ) | const |
Some of the Field attributes are designated as inheritable. If such an attribute is omitted from a Field object, its value is inherited from an ancestor node in the Field tree. If the attribute is a required one, a value must be supplied in an ancestor node; if it is optional and no inherited value is specified, the default value should be used.
The function walks up the Field inheritance tree in search for specified attribute.
Resources dictionary (Required; inheritable) MediaBox rectangle (Required; inheritable) CropBox rectangle (Optional; inheritable) Rotate integer (Optional; inheritable)
void pdftron::PDF::Field::Flatten | ( | class Page | page | ) |
Flatten/Merge existing form field appearances with the page content and remove widget annotation.
Form 'flattening' refers to the operation that changes active form fields into a static area that is part of the PDF document, just like the other text and images in the document. A completely flattened PDF form does not have any widget annotations or interactive fields.
page | page object to flatten |
GState pdftron::PDF::Field::GetDefaultAppearance | ( | ) |
SDF::Obj pdftron::PDF::Field::GetDefaultValue | ( | ) |
The format of field's value varies depending on the field type.
UString pdftron::PDF::Field::GetDefaultValueAsString | ( | ) |
bool pdftron::PDF::Field::GetFlag | ( | Flag | flag | ) | const |
TextJustification pdftron::PDF::Field::GetJustification | ( | ) |
int pdftron::PDF::Field::GetMaxLen | ( | ) | const |
UString pdftron::PDF::Field::GetName | ( | ) |
UString pdftron::PDF::Field::GetOpt | ( | int | index | ) |
index | index position of the option to retrieve. |
int pdftron::PDF::Field::GetOptCount | ( | ) | const |
Returns the total number of options in a list or combo box.
UString pdftron::PDF::Field::GetPartialName | ( | ) |
SDF::Obj pdftron::PDF::Field::GetSDFObj | ( | ) | const |
SDF::Obj pdftron::PDF::Field::GetTriggerAction | ( | Field::ActionTriggerEvent | trigger | ) |
Type pdftron::PDF::Field::GetType | ( | ) | const |
Rect pdftron::PDF::Field::GetUpdateRect | ( | ) | const |
SDF::Obj pdftron::PDF::Field::GetValue | ( | ) |
The format of field's value varies depending on the field type.
bool pdftron::PDF::Field::GetValueAsBool | ( | ) |
UString pdftron::PDF::Field::GetValueAsString | ( | ) |
bool pdftron::PDF::Field::IsAnnot | ( | ) | const |
bool pdftron::PDF::Field::IsLockedByDigitalSignature | ( | ) | const |
Returns whether modifying this field would invalidate a digital signature in the document.
bool pdftron::PDF::Field::IsValid | ( | ) | const |
|
inline |
void pdftron::PDF::Field::RefreshAppearance | ( | ) |
Regenerates the appearance stream for the Widget Annotation containing variable text. Call this method if you modified field's value and would like to update field's appearance.
void pdftron::PDF::Field::Rename | ( | const UString & | field_name | ) |
Modifies the field name.
field_name | a string representing the fully qualified name of the field (e.g. "employee.name.first"). |
void pdftron::PDF::Field::SetFlag | ( | Flag | flag, |
bool | value | ||
) |
Set the value of given FieldFlag.
void pdftron::PDF::Field::SetJustification | ( | TextJustification | j | ) |
Sets the justification to be used in displaying the text field.
j | enum representing justification to set the text field to, options are e_left_justified, e_centered and e_right_justified |
void pdftron::PDF::Field::SetMaxLen | ( | int | max_len | ) |
Sets the maximum length of the field's text, in characters.
max_len | maximum length of a field's text. |
ViewChangeCollection pdftron::PDF::Field::SetValue | ( | const UString & | value | ) |
Sets the value of the field (i.e. the value of the field's /V key). The format of field's value varies depending on the field type.
value | the new field value. |
In PDF, Field's value is separate from its annotation (i.e. how the field appears on the page). After you modify Field's value you need to refresh Field's appearance using RefreshAppearance() method.
Alternatively, you can delete "AP" entry from the Widget annotation and set "NeedAppearances" flag in AcroForm dictionary (i.e. doc.GetAcroForm().Put("NeedAppearances", Obj.CreateBool(true)); ) This will force viewer application to auto-generate new field appearances every time the document is opened.
Yet another option is to generate a custom annotation appearance using ElementBuilder and ElementWriter and then set the "AP" entry in the widget dictionary to the new appearance stream. This functionality is useful in applications that need advanced control over how the form fields are rendered.
ViewChangeCollection pdftron::PDF::Field::SetValue | ( | SDF::Obj | value | ) |
ViewChangeCollection pdftron::PDF::Field::SetValue | ( | const char * | value | ) |
ViewChangeCollection pdftron::PDF::Field::SetValue | ( | bool | value | ) |
Sets the value of a check-box or radio-button field.
value | If true, the filed will be set to 'True', if false the field will be set to 'False'. |
SDF::Obj pdftron::PDF::Field::UseSignatureHandler | ( | const SDF::SignatureHandlerId | signature_handler_id | ) |
Sets the signature handler to use for adding a signature to this field. If the signature handler is not found in PDFDoc's signature handlers list, this field will not be signed. To add signature handlers, use PDFDoc.AddSignatureHandler method.
If a signature handler is already assigned to this field and this method is called once again, the associate signature handler for this field will be updated with the new handler.
signature_handler_id | The unique id of the SignatureHandler to use for adding signature in this field. |