aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/QPDFObjectHandle.cc
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2021-01-01 13:31:54 +0100
committerJay Berkenbilt <ejb@ql.org>2021-01-02 18:29:31 +0100
commita139d2b36da39fbfb018ef6973e9316a64a4ca6c (patch)
tree6e7ea711324e717fba197d031550dfe7ae0f2f94 /libqpdf/QPDFObjectHandle.cc
parentafb48d23a984ab1fe27a57ecbb3d56ac2e3a2099 (diff)
downloadqpdf-a139d2b36da39fbfb018ef6973e9316a64a4ca6c.tar.zst
Add several methods for working with form XObjects (fixes #436)
Make some more methods in QPDFPageObjectHelper work with form XObjects, provide forEach methods to walk through nested form XObjects, possibly recursively. This should make it easier to work with form XObjects from user code.
Diffstat (limited to 'libqpdf/QPDFObjectHandle.cc')
-rw-r--r--libqpdf/QPDFObjectHandle.cc15
1 files changed, 15 insertions, 0 deletions
diff --git a/libqpdf/QPDFObjectHandle.cc b/libqpdf/QPDFObjectHandle.cc
index 180ccfa3..add0b14d 100644
--- a/libqpdf/QPDFObjectHandle.cc
+++ b/libqpdf/QPDFObjectHandle.cc
@@ -2948,6 +2948,21 @@ QPDFObjectHandle::isFormXObject()
("/Form" == dict.getKey("/Subtype").getName()));
}
+bool
+QPDFObjectHandle::isImage(bool exclude_imagemask)
+{
+ if (! this->isStream())
+ {
+ return false;
+ }
+ QPDFObjectHandle dict = this->getDict();
+ return (dict.hasKey("/Subtype") &&
+ (dict.getKey("/Subtype").getName() == "/Image") &&
+ ((! exclude_imagemask) ||
+ (! (dict.getKey("/ImageMask").isBool() &&
+ dict.getKey("/ImageMask").getBoolValue()))));
+}
+
void
QPDFObjectHandle::assertPageObject()
{