如何使用java向Itext添加新字体

Lui*_*ixv 18 java fonts itext

当我想使用字体是iText时,我会做以下事情:

protected final static Font FONT_SIZE_11_BOLD = new Font(Font.HELVETICA, 11f, Font.BOLD);
Run Code Online (Sandbox Code Playgroud)

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

monthSize11 = new Chunk(month, FONT_SIZE_11_BOLD);
Run Code Online (Sandbox Code Playgroud)

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

new Font(Font.ARIAL, 11f, Font.BOLD);
Run Code Online (Sandbox Code Playgroud)

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

提前许多事情发生了.

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

dac*_*cwe 25

BaseFont base = BaseFont.createFont("c:/windows/fonts/arial.ttf", BaseFont.WINANSI);
Font font = new Font(base, 11f, Font.BOLD);
....
Run Code Online (Sandbox Code Playgroud)

在这里阅读更多.


4F2*_*A2E 24

使用前导斜杠从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();
Run Code Online (Sandbox Code Playgroud)
  • 字体的相对路径是:'src/main/resources/fonts'
  • 使用Itext 5.4.5
  • 示例代码