You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ja...@apache.org on 2015/03/24 21:07:10 UTC
svn commit: r1668977 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java
Author: jahewson
Date: Tue Mar 24 20:07:10 2015
New Revision: 1668977
URL: http://svn.apache.org/r1668977
Log:
PDFBOX-2714: Map glyph names when encoding a Type 1 font backed by a TTF
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java?rev=1668977&r1=1668976&r2=1668977&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1Font.java Tue Mar 24 20:07:10 2015
@@ -296,9 +296,10 @@ public class PDType1Font extends PDSimpl
}
String name = getGlyphList().codePointToName(unicode);
+ String nameInFont = getNameInFont(name);
Map<String, Integer> inverted = getInvertedEncoding();
- if (name.equals(".notdef") || !type1Equivalent.hasGlyph(name))
+ if (nameInFont.equals(".notdef") || !type1Equivalent.hasGlyph(nameInFont))
{
throw new IllegalArgumentException(
String.format("No glyph for U+%04X in font %s", unicode, getName()));
@@ -423,6 +424,15 @@ public class PDType1Font extends PDSimpl
public String codeToName(int code) throws IOException
{
String name = getEncoding().getName(code);
+ return getNameInFont(name);
+ }
+
+ /**
+ * Maps a PostScript glyph name to the name in the underlying font, for example when
+ * using a TTF font we might map "W" to "uni0057".
+ */
+ private String getNameInFont(String name) throws IOException
+ {
if (isEmbedded() || type1Equivalent.hasGlyph(name))
{
return name;