如何使用java向文本添加新字体

2022-09-02 02:29:53

当我想使用字体是iText时,我会执行以下操作:

protected final static Font FONT_SIZE_11_BOLD = new Font(Font.HELVETICA, 11f, Font.BOLD);

然后我可以随时使用它,如下所示:

monthSize11 = new Chunk(month, FONT_SIZE_11_BOLD);

我想使用Arial而不是HELVETICA,但Arial不能直接使用。我的意思是,我不能做

new Font(Font.ARIAL, 11f, Font.BOLD);

因为Arial不是在Font类中定义的,但Arial.ttf文件在我的C:\WINDOWS\Fonts下的系统中。问题是如何将Arial.ttf文件绑定到iText以及如何使用它。

提前很多次。

编辑:我想使用自己的字体。我的意思是,我有一个名为“myCompany.ttf”的文件,其中定义了自己的字体,并且在某些地方我必须使用。问题不仅在于Arial。


答案 1
BaseFont base = BaseFont.createFont("c:/windows/fonts/arial.ttf", BaseFont.WINANSI);
Font font = new Font(base, 11f, Font.BOLD);
....

在此处阅读更多内容


答案 2

使用前导斜杠从JAR内部加载它;否则,请使用字体的绝对路径 ()。例如:C:\...\fonts\Sansation_Regular.ttf

Font font = FontFactory.getFont("/fonts/Sansation_Regular.ttf",
    BaseFont.IDENTITY_H, BaseFont.EMBEDDED, 0.8f, Font.NORMAL, BaseColor.BLACK);
BaseFont baseFont = font.getBaseFont();
  • 字体的相对路径是:'src/main/resources/fonts'
  • 使用 Itext 5.4.5
  • 示例代码

推荐