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/05/17 17:53:44 UTC

svn commit: r1859444 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java

Author: tilman
Date: Fri May 17 17:53:44 2019
New Revision: 1859444

URL: http://svn.apache.org/viewvc?rev=1859444&view=rev
Log:
PDFBOX-4549: assume Identity-H when ToUnicode stream has no entries and ToUnicode Ordering and Encoding have Identity-H

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java?rev=1859444&r1=1859443&r2=1859444&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java Fri May 17 17:53:44 2019
@@ -138,6 +138,12 @@ public abstract class PDFont implements
                 if (cmap != null && !cmap.hasUnicodeMappings())
                 {
                     LOG.warn("Invalid ToUnicode CMap in font " + getName());
+                    if (COSName.IDENTITY_H.equals(dict.getDictionaryObject(COSName.ENCODING)) &&
+                        COSName.IDENTITY_H.getName().equals(cmap.getOrdering()))
+                    {
+                        // assume that if encoding is identity, then the reverse is also true
+                        cmap = CMapManager.getPredefinedCMap(COSName.IDENTITY_H.getName());
+                    }
                 }
             }
             catch (IOException ex)