- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我的工具主要是读取 PDF 并在 JTextArea
中打印 pdf 的内容。一切正常,直到我的 PDF 包含阿拉伯语的 PH Mirjan 字体。我的文本区域显示了一些垃圾字符,如下所示。
我该如何解决这个问题?
文本区域的默认字体是 Arial Unicode MS。反正我可以配置文本区域的字体吗?假设我在本地下载了 PH Mirjan,如何将文本区域字体更改为下载的字体。非常感谢任何建议或引用链接。
编辑
try (InputStream is = NewJFrame.class.getResourceAsStream("/GE SS Two Bold.otf"))
{
Font font = Font.createFont(Font.TRUETYPE_FONT, is);
font = font.deriveFont(Font.PLAIN, 24f);
jTextArea1.setFont(font);
jTextArea1.setForeground(Color.BLUE);
它给了我这个异常(exception)。
异常
java.awt.FontFormatException: java.nio.BufferUnderflowException at sun.font.TrueTypeFont.init(TrueTypeFont.java:558) at sun.font.TrueTypeFont.(TrueTypeFont.java:191) at sun.font.CFontManager.createFont2D(CFontManager.java:161) at java.awt.Font.(Font.java:614) at java.awt.Font.createFont0(Font.java:968) at java.awt.Font.createFont(Font.java:876)
知道我为什么会收到这个吗?
最佳答案
为什么字体名称是 .tt
而不是 .ttf
?情况可能是它不是 ttf
文件或已损坏导致异常发生
try {
Font NARROW = Font.createFont(Font.TRUETYPE_FONT, this.getClass().getResourceAsStream("/fonts/DSS.ttf"));
NARROW = NARROW.deriveFont(17f);
} catch (FontFormatException | IOException ex) {
System.err.println("Exception loading fonts "+ex);
}
我知道这是几乎相同的代码,在其他 ttf
文件上试试这个。 Exception
不应该存在。
关于java - Swing - 如何将自定义字体添加到 JTextArea?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31129166/
我是一名优秀的程序员,十分优秀!