You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2019/04/09 10:17:44 UTC
svn commit: r1857156 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDResources.java
Author: tilman
Date: Tue Apr 9 10:17:44 2019
New Revision: 1857156
URL: http://svn.apache.org/viewvc?rev=1857156&view=rev
Log:
PDFBOX-4509: check for indirect fonts too
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDResources.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDResources.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDResources.java?rev=1857156&r1=1857155&r2=1857156&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDResources.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDResources.java Tue Apr 9 10:17:44 2019
@@ -674,6 +674,22 @@ public final class PDResources implement
return dict.getKeyForValue(object.getCOSObject());
}
+ // PDFBOX-4509: It could exist as an indirect object, happens when a font is taken from the
+ // AcroForm default resources of a loaded PDF.
+ if (dict != null && COSName.FONT.equals(kind))
+ {
+ for (Map.Entry<COSName, COSBase> entry : dict.entrySet())
+ {
+ if (entry.getValue() instanceof COSObject)
+ {
+ if (object.getCOSObject() == ((COSObject) entry.getValue()).getObject())
+ {
+ return entry.getKey();
+ }
+ }
+ }
+ }
+
// add the item with a new key
COSName name = createKey(kind, prefix);
put(kind, name, object);