mirror of
https://github.com/qpdf/qpdf.git
synced 2025-02-07 14:18:24 +00:00
Add QPDFObjectHandle::isFormXObject
This commit is contained in:
parent
c97bd6323e
commit
1562d34c09
@ -1,3 +1,8 @@
|
||||
2020-12-31 Jay Berkenbilt <ejb@ql.org>
|
||||
|
||||
* Add QPDFObjectHandle::isFormXObject to test whether an object is
|
||||
a form XObject.
|
||||
|
||||
2020-12-30 Jay Berkenbilt <ejb@ql.org>
|
||||
|
||||
* Add QPDFPageObjectHelper::flattenRotation and --flatten-rotation
|
||||
|
@ -1147,6 +1147,9 @@ class QPDFObjectHandle
|
||||
QPDF_DLL
|
||||
void assertPageObject();
|
||||
|
||||
QPDF_DLL
|
||||
bool isFormXObject();
|
||||
|
||||
private:
|
||||
QPDFObjectHandle(QPDF*, int objid, int generation);
|
||||
QPDFObjectHandle(QPDFObject*);
|
||||
|
@ -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()
|
||||
{
|
||||
|
@ -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(
|
||||
|
Loading…
x
Reference in New Issue
Block a user