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 2014/08/19 05:23:38 UTC
svn commit: r1618787 - in
/pdfbox/branches/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font:
ExternalFonts.java PDFont.java
Author: jahewson
Date: Tue Aug 19 03:23:38 2014
New Revision: 1618787
URL: http://svn.apache.org/r1618787
Log:
PDFBOX-2262: Fix TTF symbolic mapping
Modified:
pdfbox/branches/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/ExternalFonts.java
pdfbox/branches/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java
Modified: pdfbox/branches/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/ExternalFonts.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/ExternalFonts.java?rev=1618787&r1=1618786&r2=1618787&view=diff
==============================================================================
--- pdfbox/branches/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/ExternalFonts.java (original)
+++ pdfbox/branches/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/ExternalFonts.java Tue Aug 19 03:23:38 2014
@@ -171,6 +171,14 @@ public final class ExternalFonts
}
/**
+ * Windows name (ArialNarrow,Bold) to PostScript name (ArialNarrow-Bold)
+ */
+ private static String windowsToPs(String windowsName)
+ {
+ return windowsName.replace(",", "-");
+ }
+
+ /**
* Returns the fallback font, used for rendering when no other fonts are available.
*/
public static TrueTypeFont getFallbackFont()
@@ -197,9 +205,11 @@ public final class ExternalFonts
ttf = getProvider().getTrueTypeFont(substituteName);
if (ttf != null)
{
- break;
+ return ttf;
}
}
+ // then Windows name
+ ttf = getProvider().getTrueTypeFont(windowsToPs(postScriptName));
}
return ttf;
}
@@ -221,9 +231,11 @@ public final class ExternalFonts
t1 = getProvider().getType1Font(substituteName);
if (t1 != null)
{
- break;
+ return t1;
}
}
+ // then Windows name
+ t1 = getProvider().getType1Font(windowsToPs(postScriptName));
}
return t1;
}
@@ -275,9 +287,11 @@ public final class ExternalFonts
cff = getProvider().getCFFFont(substituteName);
if (cff != null)
{
- break;
+ return cff;
}
}
+ // then Windows name
+ cff = getProvider().getCFFFont(windowsToPs(postScriptName));
}
return cff;
}
Modified: pdfbox/branches/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java?rev=1618787&r1=1618786&r2=1618787&view=diff
==============================================================================
--- pdfbox/branches/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java (original)
+++ pdfbox/branches/no-awt/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFont.java Tue Aug 19 03:23:38 2014
@@ -619,12 +619,8 @@ public abstract class PDFont implements
{
if (getFontDescriptor() != null)
{
- // fixme: isSymbolic() defaults to false if the flag is missing, which isn't useful!
- // todo: what about isNonSymbolic()?
- if (getFontDescriptor().isSymbolic()) // we can trust "true", but not "false"
- {
- return true;
- }
+ // fixme: isSymbolic() defaults to false if the flag is missing so we can't trust this
+ return getFontDescriptor().isSymbolic();
}
// fixme: this heuristic is a starting point only