diff options
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( |