diff options
author | Jay Berkenbilt <ejb@ql.org> | 2020-12-31 19:05:02 +0100 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2021-01-01 13:36:10 +0100 |
commit | 1562d34c096424b4916be09e8dcd2f0f3effb17f (patch) | |
tree | ae76dcd3e5d1de1d100e0e7523ee7664d7bef681 /libqpdf | |
parent | c97bd6323e7f8988b4ff24b913a37e683eeaacf6 (diff) | |
download | qpdf-1562d34c096424b4916be09e8dcd2f0f3effb17f.tar.zst |
Add QPDFObjectHandle::isFormXObject
Diffstat (limited to 'libqpdf')
-rw-r--r-- | libqpdf/QPDFObjectHandle.cc | 14 | ||||
-rw-r--r-- | libqpdf/QPDFPageObjectHelper.cc | 6 |
2 files changed, 15 insertions, 5 deletions
diff --git a/libqpdf/QPDFObjectHandle.cc b/libqpdf/QPDFObjectHandle.cc index 7b36fffe..181793f4 100644 --- a/libqpdf/QPDFObjectHandle.cc +++ b/libqpdf/QPDFObjectHandle.cc @@ -2962,6 +2962,20 @@ QPDFObjectHandle::isPagesObject() return (this->isDictionary() && this->hasKey("/Kids")); } +bool +QPDFObjectHandle::isFormXObject() +{ + if (! this->isStream()) + { + return false; + } + QPDFObjectHandle dict = this->getDict(); + return (dict.getKey("/Type").isName() && + ("/XObject" == dict.getKey("/Type").getName()) && + dict.getKey("/Subtype").isName() && + ("/Form" == dict.getKey("/Subtype").getName())); +} + void QPDFObjectHandle::assertPageObject() { diff --git a/libqpdf/QPDFPageObjectHelper.cc b/libqpdf/QPDFPageObjectHelper.cc index 58747814..a80ab641 100644 --- a/libqpdf/QPDFPageObjectHelper.cc +++ b/libqpdf/QPDFPageObjectHelper.cc @@ -565,11 +565,7 @@ QPDFPageObjectHelper::removeUnreferencedResourcesHelper( dict.removeKey(*k_iter); } QPDFObjectHandle resource = dict.getKey(*k_iter); - if (resource.isStream() && - resource.getDict().getKey("/Type").isName() && - ("/XObject" == resource.getDict().getKey("/Type").getName()) && - resource.getDict().getKey("/Subtype").isName() && - ("/Form" == resource.getDict().getKey("/Subtype").getName())) + if (resource.isFormXObject()) { QTC::TC("qpdf", "QPDFPageObjectHelper filter form xobject"); removeUnreferencedResourcesHelper( |