0
的TFF文件中的代码如下:为什么扔java.awt.FontFormatException,不过,我可以打开Windows
Font getFont(String fontPath) throws IOException, FontFormatException {
fis = new FileInputStream(fontPath);
bis = new java.io.BufferedInputStream(fis);
Font tmp = null;
try {
tmp = Font.createFont(Font.TRUETYPE_FONT, bis);
} catch (FontFormatException e) {
e.printStackTrace();
bis.close();
fis = new FileInputStream(fontPath);
bis = new java.io.BufferedInputStream(fis);
tmp = Font.createFont(Font.TYPE1_FONT, bis);
}
return tmp.deriveFont(96.0f);
}
此代码并不总是工作!。
它会抛出java.awt.FontFormatException一些字体文件,但是,字体文件可以正确打开Windows ...为什么
它会先抛出: java.awt.FontFormatException:字体名称未找到
,然后抛出: java.awt.FontFormatException:坏PFA字体
我有完全相同的问题。我发现TTF文件被写入临时文件。然后处理该文件,并且因为未在TrueTypeFont实例中设置此属性而引发FontFormatException(未找到字体名称)异常。这有点奇怪,因为我已经验证了tmp字体文件的元数据,并且此文件包含所需的元数据。 – davidcyp 2013-11-04 14:38:10
..我通过从网上下载TTF文件解决了这个问题。我想OSX的foo.TTF与Windows的foo.TTF不一样。但是,通过将所有嵌入的字体替换为下载的字体,我终于解决了我的问题。 – davidcyp 2013-11-04 15:15:22