我想使用iTextSharp编写一些文本。我正在使用这种方法:
var font = BaseFont.CreateFont(BaseFont.TIMES_BOLD, BaseFont.WINANSI, BaseFont.EMBEDDED);
我的问题是:iTextSharp是否支持系统字体目录中的所有字体?
假设用户在字体选择器对话框中选择了一种名为“mycoolfont”的字体。我可以这样创建新的iTextSharp字体吗?
var font = BaseFont.CreateFont("mycoolfont", BaseFont.WINANSI, BaseFont.EMBEDDED);
overContent.SetFontAndSize(font, fontSize);
更新:
我尝试了
var font = BaseFont.CreateFont("Verdana", BaseFont.WINANSI, BaseFont.EMBEDDED);
,但得到了itextsharp无法识别的错误“Verdana” 最佳答案
首先,您需要注册字体,然后从FontFactory中检索它(并且不要每次都创建它):
public static iTextSharp.text.Font GetTahoma()
{
var fontName = "Tahoma";
if (!FontFactory.IsRegistered(fontName))
{
var fontPath = Environment.GetEnvironmentVariable("SystemRoot") + "\\fonts\\tahoma.ttf";
FontFactory.Register(fontPath);
}
return FontFactory.GetFont(fontName, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
}