Fix tests for Form XObjects

Remove test for type == /XObject in QPDFObjectHandle::isFormXObject
as type value is optional (as per spec 8.10.2).

Replace code to test for /Form in QPDFJob::shouldRemoveUnreferencedResources
with a call to isFormXObject.
This commit is contained in:
m-holger 2022-02-09 13:54:33 +00:00 committed by Jay Berkenbilt
parent 235c89e037
commit 4ff837f099
2 changed files with 2 additions and 8 deletions

View File

@ -2743,13 +2743,7 @@ QPDFJob::shouldRemoveUnreferencedResources(QPDF& pdf)
for (auto const& k: xobject.getKeys())
{
QPDFObjectHandle xobj = xobject.getKey(k);
if (xobj.isStream() &&
xobj.getDict().getKey("/Type").isName() &&
("/XObject" ==
xobj.getDict().getKey("/Type").getName()) &&
xobj.getDict().getKey("/Subtype").isName() &&
("/Form" ==
xobj.getDict().getKey("/Subtype").getName()))
if (xobj.isFormXObject())
{
queue.push_back(xobj);
}

View File

@ -3406,7 +3406,7 @@ QPDFObjectHandle::isPagesObject()
bool
QPDFObjectHandle::isFormXObject()
{
return isStreamOfType("/XObject", "/Form");
return isStreamOfType("", "/Form");
}
bool