aboutsummaryrefslogtreecommitdiffstats
path: root/include/qpdf/QPDFFormFieldObjectHelper.hh
diff options
context:
space:
mode:
Diffstat (limited to 'include/qpdf/QPDFFormFieldObjectHelper.hh')
-rw-r--r--include/qpdf/QPDFFormFieldObjectHelper.hh154
1 files changed, 63 insertions, 91 deletions
diff --git a/include/qpdf/QPDFFormFieldObjectHelper.hh b/include/qpdf/QPDFFormFieldObjectHelper.hh
index 2221684a..fbd5547f 100644
--- a/include/qpdf/QPDFFormFieldObjectHelper.hh
+++ b/include/qpdf/QPDFFormFieldObjectHelper.hh
@@ -2,29 +2,25 @@
//
// This file is part of qpdf.
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
+// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+// in compliance with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
+// Unless required by applicable law or agreed to in writing, software distributed under the License
+// is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+// or implied. See the License for the specific language governing permissions and limitations under
+// the License.
//
-// Versions of qpdf prior to version 7 were released under the terms
-// of version 2.0 of the Artistic License. At your option, you may
-// continue to consider qpdf to be licensed under those terms. Please
-// see the manual for additional information.
+// Versions of qpdf prior to version 7 were released under the terms of version 2.0 of the Artistic
+// License. At your option, you may continue to consider qpdf to be licensed under those terms.
+// Please see the manual for additional information.
#ifndef QPDFFORMFIELDOBJECTHELPER_HH
#define QPDFFORMFIELDOBJECTHELPER_HH
-// This object helper helps with form fields for interactive forms.
-// Please see comments in QPDFAcroFormDocumentHelper.hh for additional
-// details.
+// This object helper helps with form fields for interactive forms. Please see comments in
+// QPDFAcroFormDocumentHelper.hh for additional details.
#include <qpdf/QPDFObjectHelper.hh>
@@ -46,37 +42,32 @@ class QPDFFormFieldObjectHelper: public QPDFObjectHelper
QPDF_DLL
bool isNull();
- // Return the field's parent. A form field object helper whose
- // underlying object is null is returned if there is no parent.
- // This condition may be tested by calling isNull().
+ // Return the field's parent. A form field object helper whose underlying object is null is
+ // returned if there is no parent. This condition may be tested by calling isNull().
QPDF_DLL
QPDFFormFieldObjectHelper getParent();
- // Return the top-level field for this field. Typically this will
- // be the field itself or its parent. If is_different is provided,
- // it is set to true if the top-level field is different from the
- // field itself; otherwise it is set to false.
+ // Return the top-level field for this field. Typically this will be the field itself or its
+ // parent. If is_different is provided, it is set to true if the top-level field is different
+ // from the field itself; otherwise it is set to false.
QPDF_DLL
QPDFFormFieldObjectHelper getTopLevelField(bool* is_different = nullptr);
- // Get a field value, possibly inheriting the value from an
- // ancestor node.
+ // Get a field value, possibly inheriting the value from an ancestor node.
QPDF_DLL
QPDFObjectHandle getInheritableFieldValue(std::string const& name);
- // Get an inherited field value as a string. If it is not a
- // string, silently return the empty string.
+ // Get an inherited field value as a string. If it is not a string, silently return the empty
+ // string.
QPDF_DLL
std::string getInheritableFieldValueAsString(std::string const& name);
- // Get an inherited field value of type name as a string
- // representing the name. If it is not a name, silently return
- // the empty string.
+ // Get an inherited field value of type name as a string representing the name. If it is not a
+ // name, silently return the empty string.
QPDF_DLL
std::string getInheritableFieldValueAsName(std::string const& name);
- // Returns the value of /FT if present, otherwise returns the
- // empty string.
+ // Returns the value of /FT if present, otherwise returns the empty string.
QPDF_DLL
std::string getFieldType();
@@ -86,60 +77,53 @@ class QPDFFormFieldObjectHelper: public QPDFObjectHelper
QPDF_DLL
std::string getPartialName();
- // Return the alternative field name (/TU), which is the field
- // name intended to be presented to users. If not present, fall
- // back to the fully qualified name.
+ // Return the alternative field name (/TU), which is the field name intended to be presented to
+ // users. If not present, fall back to the fully qualified name.
QPDF_DLL
std::string getAlternativeName();
- // Return the mapping field name (/TM). If not present, fall back
- // to the alternative name, then to the partial name.
+ // Return the mapping field name (/TM). If not present, fall back to the alternative name, then
+ // to the partial name.
QPDF_DLL
std::string getMappingName();
QPDF_DLL
QPDFObjectHandle getValue();
- // Return the field's value as a string. If this is called with a
- // field whose value is not a string, the empty string will be
- // silently returned.
+ // Return the field's value as a string. If this is called with a field whose value is not a
+ // string, the empty string will be silently returned.
QPDF_DLL
std::string getValueAsString();
QPDF_DLL
QPDFObjectHandle getDefaultValue();
- // Return the field's default value as a string. If this is called
- // with a field whose value is not a string, the empty string will
- // be silently returned.
+ // Return the field's default value as a string. If this is called with a field whose value is
+ // not a string, the empty string will be silently returned.
QPDF_DLL
std::string getDefaultValueAsString();
- // Return the default appearance string, taking inheritance from
- // the field tree into account. Returns the empty string if the
- // default appearance string is not available (because it's
- // erroneously absent or because this is not a variable text
- // field). If not found in the field hierarchy, look in /AcroForm.
+ // Return the default appearance string, taking inheritance from the field tree into account.
+ // Returns the empty string if the default appearance string is not available (because it's
+ // erroneously absent or because this is not a variable text field). If not found in the field
+ // hierarchy, look in /AcroForm.
QPDF_DLL
std::string getDefaultAppearance();
- // Return the default resource dictionary for the field. This
- // comes not from the field but from the document-level /AcroForm
- // dictionary. While several PDF generates put a /DR key in the
- // form field's dictionary, experimentation suggests that many
- // popular readers, including Adobe Acrobat and Acrobat Reader,
- // ignore any /DR item on the field.
+ // Return the default resource dictionary for the field. This comes not from the field but from
+ // the document-level /AcroForm dictionary. While several PDF generates put a /DR key in the
+ // form field's dictionary, experimentation suggests that many popular readers, including Adobe
+ // Acrobat and Acrobat Reader, ignore any /DR item on the field.
QPDF_DLL
QPDFObjectHandle getDefaultResources();
- // Return the quadding value, taking inheritance from the field
- // tree into account. Returns 0 if quadding is not specified. Look
- // in /AcroForm if not found in the field hierarchy.
+ // Return the quadding value, taking inheritance from the field tree into account. Returns 0 if
+ // quadding is not specified. Look in /AcroForm if not found in the field hierarchy.
QPDF_DLL
int getQuadding();
- // Return field flags from /Ff. The value is a logical or of
- // pdf_form_field_flag_e as defined in qpdf/Constants.h
+ // Return field flags from /Ff. The value is a logical or of pdf_form_field_flag_e as defined in
+ // qpdf/Constants.h
QPDF_DLL
int getFlags();
@@ -148,19 +132,16 @@ class QPDFFormFieldObjectHelper: public QPDFObjectHelper
// Returns true if field is of type /Tx
QPDF_DLL
bool isText();
- // Returns true if field is of type /Btn and flags do not indicate
- // some other type of button.
+ // Returns true if field is of type /Btn and flags do not indicate some other type of button.
QPDF_DLL
bool isCheckbox();
// Returns true if field is a checkbox and is checked.
QPDF_DLL
bool isChecked();
- // Returns true if field is of type /Btn and flags indicate that
- // it is a radio button
+ // Returns true if field is of type /Btn and flags indicate that it is a radio button
QPDF_DLL
bool isRadioButton();
- // Returns true if field is of type /Btn and flags indicate that
- // it is a pushbutton
+ // Returns true if field is of type /Btn and flags indicate that it is a pushbutton
QPDF_DLL
bool isPushbutton();
// Returns true if fields if of type /Ch
@@ -170,45 +151,36 @@ class QPDFFormFieldObjectHelper: public QPDFObjectHelper
QPDF_DLL
std::vector<std::string> getChoices();
- // Set an attribute to the given value. If you have a
- // QPDFAcroFormDocumentHelper and you want to set the name of a
- // field, use QPDFAcroFormDocumentHelper::setFormFieldName
- // instead.
+ // Set an attribute to the given value. If you have a QPDFAcroFormDocumentHelper and you want to
+ // set the name of a field, use QPDFAcroFormDocumentHelper::setFormFieldName instead.
QPDF_DLL
void setFieldAttribute(std::string const& key, QPDFObjectHandle value);
- // Set an attribute to the given value as a Unicode string (UTF-16
- // BE encoded). The input string should be UTF-8 encoded. If you
- // have a QPDFAcroFormDocumentHelper and you want to set the name
- // of a field, use QPDFAcroFormDocumentHelper::setFormFieldName
- // instead.
+ // Set an attribute to the given value as a Unicode string (UTF-16 BE encoded). The input string
+ // should be UTF-8 encoded. If you have a QPDFAcroFormDocumentHelper and you want to set the
+ // name of a field, use QPDFAcroFormDocumentHelper::setFormFieldName instead.
QPDF_DLL
void setFieldAttribute(std::string const& key, std::string const& utf8_value);
- // Set /V (field value) to the given value. If need_appearances is
- // true and the field type is either /Tx (text) or /Ch (choice),
- // set /NeedAppearances to true. You can explicitly tell this
- // method not to set /NeedAppearances if you are going to generate
- // an appearance stream yourself. Starting with qpdf 8.3.0, this
- // method handles fields of type /Btn (checkboxes, radio buttons,
- // pushbuttons) specially.
+ // Set /V (field value) to the given value. If need_appearances is true and the field type is
+ // either /Tx (text) or /Ch (choice), set /NeedAppearances to true. You can explicitly tell this
+ // method not to set /NeedAppearances if you are going to generate an appearance stream
+ // yourself. Starting with qpdf 8.3.0, this method handles fields of type /Btn (checkboxes,
+ // radio buttons, pushbuttons) specially.
QPDF_DLL
void setV(QPDFObjectHandle value, bool need_appearances = true);
- // Set /V (field value) to the given string value encoded as a
- // Unicode string. The input value should be UTF-8 encoded. See
- // comments above about /NeedAppearances.
+ // Set /V (field value) to the given string value encoded as a Unicode string. The input value
+ // should be UTF-8 encoded. See comments above about /NeedAppearances.
QPDF_DLL
void setV(std::string const& utf8_value, bool need_appearances = true);
- // Update the appearance stream for this field. Note that qpdf's
- // ability to generate appearance streams is limited. We only
- // generate appearance streams for streams of type text or choice.
- // The appearance uses the default parameters provided in the
- // file, and it only supports ASCII characters. Quadding is
- // currently ignored. While this functionality is limited, it
- // should do a decent job on properly constructed PDF files when
- // field values are restricted to ASCII characters.
+ // Update the appearance stream for this field. Note that qpdf's ability to generate appearance
+ // streams is limited. We only generate appearance streams for streams of type text or choice.
+ // The appearance uses the default parameters provided in the file, and it only supports ASCII
+ // characters. Quadding is currently ignored. While this functionality is limited, it should do
+ // a decent job on properly constructed PDF files when field values are restricted to ASCII
+ // characters.
QPDF_DLL
void generateAppearance(QPDFAnnotationObjectHelper&);