【发布时间】:2021-02-16 20:49:36
【问题描述】:
我正在开发一个应用程序,它必须创建一个具有不同字体样式(有时是粗体,有时是斜体,有时是常规)的 PDF 文件。我必须使用的字体是 Eras Medium BT (True Type),我使用名为“erasm.TTF”的本地文件加载它。我的问题是,如何使用我的 Eras 字体文件以粗体或斜体绘制文本?
我有一个使用 iText 生成类似 PDF 的旧代码,并且要获得粗体字体,我只需要调用此函数:
public Font getFontErasMDBTBold9(){
FontFactory.register(fontPath + "erasm.TTF", "ERASM");
fontErasMDBT9 = FontFactory.getFont("ERASM", 9, Font.BOLD, Color.BLACK);
return fontErasMDBT9;
}
编辑: 我在其他问题中看到它可以使用不同的字体变体来完成,或者通过使用原始命令人为地完成。我想要的是使用原始字体并将一些文本设置为粗体,其他文本斜体,其余的只是常规的。
是否可以像在 iText 中一样以粗体或斜体打开字体?
【问题讨论】:
-
在操作系统级别上,粗体、斜体和斜体+粗体实际上是不同的字体文件(或作为包含这些字体的“字体集合”的一个文件)。例如,如果您使用的是 windows,请在 c:\windows\fonts 中执行“dir arial*”。
-
关于你的编辑 - “它可以使用不同的字体变体来完成,或者通过使用原始命令人为地完成。我想要的是使用原始字体并将一些文本设置为粗体,其他文本斜体,其余的只是常规的。” - pdfbox 没有高级文本样式 API。使用其他字体文件或隐式更改图形状态是这样一个高级 API 将为您做的事情。因此,您必须明确地执行此操作。
标签: pdfbox