aboutsummaryrefslogtreecommitdiffstats
path: root/include
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
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')
-rw-r--r--include/qpdf/QPDFAnnotationObjectHelper.hh5
-rw-r--r--include/qpdf/QPDFFormFieldObjectHelper.hh33
2 files changed, 38 insertions, 0 deletions
diff --git a/include/qpdf/QPDFAnnotationObjectHelper.hh b/include/qpdf/QPDFAnnotationObjectHelper.hh
index c5d24334..5e8af0c6 100644
--- a/include/qpdf/QPDFAnnotationObjectHelper.hh
+++ b/include/qpdf/QPDFAnnotationObjectHelper.hh
@@ -61,6 +61,11 @@ class QPDFAnnotationObjectHelper: public QPDFObjectHelper
QPDF_DLL
std::string getAppearanceState();
+ // Return flags from "/F". The value is a logical or of
+ // pdf_annotation_flag_e as defined in qpdf/Constants.h.
+ QPDF_DLL
+ int getFlags();
+
// Return a specific stream. "which" may be one of "/N", "/R", or
// "/D" to indicate the normal, rollover, or down appearance
// stream. (Any value may be passed to "which"; if an appearance
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);