gpt4 book ai didi

java - Swing - 如何将自定义字体添加到 JTextArea?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:58:47 25 4
gpt4 key购买 nike

我的工具主要是读取 PDF 并在 JTextArea 中打印 pdf 的内容。一切正常,直到我的 PDF 包含阿拉伯语的 PH Mirjan 字体。我的文本区域显示了一些垃圾字符,如下所示。

enter image description here

我该如何解决这个问题?

文本区域的默认字体是 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com