gpt4 book ai didi

java - 使用 iText 从 *.ttf 文件创建字体

转载 作者:行者123 更新时间:2023-12-01 19:01:02 24 4
gpt4 key购买 nike

这是我的 Resources.class 中的一个方法:

public static Font loadFont(String fontFileName)
{
BaseFont base = null;

try
{
base = BaseFont.createFont(Resource.class.getResource(fontFileName + "_font.ttf").toString(), BaseFont.WINANSI, true);
}
catch (DocumentException | IOException e)
{
e.printStackTrace();
}

Font font = new Font(base, Font.BOLD, 15);
return font;
}

我的程序结构是:

src (folder)
core (package)
//all (but one) classes used for program
resources (package)
class Resources (used to load resources into the "core" classes)
wingding_font.ttf

这是不起作用的代码片段:

p = new Phrase("some random text");
p.setFont(Resource.loadFont("wingding"));
pa = new Paragraph(p);
pa.setFont(Resource.loadFont("wingding"));
document.add(pa);

当我打开 PDF 时,文本就在那里,但使用了一些字体,我猜这是默认字体。

注1:我尝试将字体仅设置为短语(p)和段落(pa),但这并没有以任何方式改变输出。

注2:Resource.loadFont("wingding"); try/catch 方法没有“捕获”任何错误。

最佳答案

尝试创建嵌入字体对象并使用此字体呈现文本:

//this code should run once at initialization/application startup
FontFactory.register("resources/wingding_font.ttf");
Font textFont = FontFactory.getFont("wingding", BaseFont.IDENTITY_H,
BaseFont.EMBEDDED, 10); //10 is the size
...
//reuse the reference to the font object when rendering your text
Paragraph p = new Paragraph("someText", textFont);

顺便说一句,iText 有 FontFactory 类来帮助加载您的字体,您不再需要 Resources 中的 loadFont 方法>.

希望有帮助。

关于java - 使用 iText 从 *.ttf 文件创建字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12333018/

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