我的工具基本上是读取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)
你知道为什么会出现这个异常吗?
JTextArea#setFont
,但你需要使用类似Font.createFont
的方法先加载它(假设它没有被加载到操作系统的系统字体中),否则你应该能够通过名称创建它。例如 example 和 example。 - MadProgrammer