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)