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 2023/05/27 16:48:33 UTC

svn commit: r1910085 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java

Author: tilman
Date: Sat May 27 16:48:33 2023
New Revision: 1910085

URL: http://svn.apache.org/viewvc?rev=1910085&view=rev
Log:
PDFBOX-5612: use cid2gid table only if substituted font is the same; improve logging

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

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java?rev=1910085&r1=1910084&r2=1910085&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java Sat May 27 16:48:33 2023
@@ -159,6 +159,10 @@ public class PDCIDFontType2 extends PDCI
         {
             LOG.warn("Using fallback font " + ttfFont.getName() + " for CID-keyed TrueType font " + getBaseFont());
         }
+        else if (ttfFont != null)
+        {
+            LOG.info("Using substitute font " + ttfFont.getName() + " for CID-keyed TrueType font " + getBaseFont());
+        }
         return ttfFont;
     }
 
@@ -236,9 +240,13 @@ public class PDCIDFontType2 extends PDCI
             // font's 'cmap' table. The means by which this is accomplished are implementation-
             // dependent.
             // omit the CID2GID mapping if the embedded font is replaced by an external font
-            if (cid2gid != null && !isDamaged)
+            String name = getName();
+            if (cid2gid != null && !isDamaged && name != null && name.equals(ttf.getName()))
             {
                 // Acrobat allows non-embedded GIDs - todo: can we find a test PDF for this?
+                // PDFBOX-5612: should happen only if it's really the same font
+                // this is not perfect, we may have to improve this because some identical fonts
+                // have different names
                 LOG.warn("Using non-embedded GIDs in font " + getName());
                 int cid = codeToCID(code);
                 if (cid < cid2gid.length)