关于font和basefont的内容,我有很多谜。特别是在构造函数方面。 iText网站将此行作为新字体的示例代码
BaseFont unicode = BaseFont.createFont("c:/windows/fonts/arialuni.ttf",
BaseFont.IDENTITY_H,
BaseFont.EMBEDDED);
我可以接听这个电话:
BaseFont bf = BaseFont.createFont(BaseFont.COURIER, BaseFont.CP1257,
BaseFont.EMBEDDED);
但是,如果我用BaseFont.HELVETICA替换BaseFont.CP1257然后它不起作用,我得到一个页面说“无法加载pdf文档。”
我尝试查看类文件,我似乎无法弄清楚第二个参数是什么(我假设它类似于备份字体,以防第一个字体不起作用,如HTML)我无法弄清楚为什么有些字体会起作用而不是其他字体。
答案 0 :(得分:8)
要从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();
使用Itext 5.4.5
答案 1 :(得分:4)
答案 2 :(得分:0)
这对我有用。老帖子,但我找不到简单的答案。
//Here you setup the font that you want. I put it under the root/Content/fonts folder in my project
Font font = FontFactory.GetFont("~/Content/fonts/ARIALN.ttf", BaseFont.CP1252,false, 9);
//Here I create the paragraph then assign the font to it at the end
var addressAttn = new Paragraph("Attn: Manager, Billing Services", font);