aboutsummaryrefslogtreecommitdiffstats
path: root/include/qpdf/QPDFFormFieldObjectHelper.hh
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2019-01-02 03:27:18 +0100
committerJay Berkenbilt <ejb@ql.org>2019-01-04 05:18:13 +0100
commite3144ac4177b7c38567f41a8e31a6c162d3b76f4 (patch)
tree94d2e557359b040cae83224a9c5e33f7cb46d7db /include/qpdf/QPDFFormFieldObjectHelper.hh
parent26393f51373d95bb2fe5a99d1de9d04d8d7eb920 (diff)
downloadqpdf-e3144ac4177b7c38567f41a8e31a6c162d3b76f4.tar.zst
Add form fields to json output
Also add some additional methods for detecting form field types to assist in the json creation and for later use.
Diffstat (limited to 'include/qpdf/QPDFFormFieldObjectHelper.hh')
-rw-r--r--include/qpdf/QPDFFormFieldObjectHelper.hh33
1 files changed, 33 insertions, 0 deletions
diff --git a/include/qpdf/QPDFFormFieldObjectHelper.hh b/include/qpdf/QPDFFormFieldObjectHelper.hh
index ec2c1f55..5b8a2d0e 100644
--- a/include/qpdf/QPDFFormFieldObjectHelper.hh
+++ b/include/qpdf/QPDFFormFieldObjectHelper.hh
@@ -29,6 +29,7 @@
#include <qpdf/QPDFObjectHelper.hh>
#include <qpdf/DLL.h>
+#include <vector>
class QPDFFormFieldObjectHelper: public QPDFObjectHelper
{
@@ -120,6 +121,38 @@ class QPDFFormFieldObjectHelper: public QPDFObjectHelper
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
+ QPDF_DLL
+ int getFlags();
+
+ // Methods for testing for particular types of form fields
+
+ // 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.
+ 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
+ QPDF_DLL
+ bool isRadioButton();
+ // 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
+ QPDF_DLL
+ bool isChoice();
+ // Returns choices as UTF-8 strings
+ QPDF_DLL
+ std::vector<std::string> getChoices();
+
// Set an attribute to the given value
QPDF_DLL
void setFieldAttribute(std::string const& key, QPDFObjectHandle value);