无法在iTextsharp中更改字体
本文关键字:字体 iTextsharp | 更新日期: 2023-09-27 17:54:14
我使用iTextSharp生成表格并将其打印在pdf中。我试着改变字体,但是没有任何效果。
Font tablefont = new Font();
tablefont=FontFactory.GetFont(FontFactory.HELVETICA, 8,BaseColor.RED) ;
table.AddCell("Name :");
PdfPCell cell = new PdfPCell(new Phrase("Star Diamonds") {Font=tablefont});
如果你正在开始一个新的项目,我建议使用itext7的iTextSharp,因为我们已经引入了字体继承在该版本;参见第1章:介绍PdfFont类
如果你坚持使用iTextSharp 5.5.9,你应该阅读旧的教程,并像这样创建你的Phrase
:
BaseFont bfTimes = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, false);
Font tablefont = new Font(bfTimes, 8);
PdfPCell cell = new PdfPCell(new Phrase("Star Diamonds", tablefont));
或者像这样:
Font tablefont = new Font(FontFamily.TIMES_ROMAN, 8);
PdfPCell cell = new PdfPCell(new Phrase("Star Diamonds", tablefont));
或者像这样:
Font tablefont = FontFactory.GetFont("Times-Roman", 8);
PdfPCell cell = new PdfPCell(new Phrase("Star Diamonds", tablefont));
你可以在Action book的第11章:选择正确的字体中找到很多旧字体的例子。该页面上提供的示例是用Java编写的,但是如果向下滚动,您将找到指向所有相应.cs
文件的链接。
还有一个关于字体的广泛的常见问题解答部分,由过去在StackOverflow上发布的问题的答案组成。
虽然不是完全重复,我通过参考如何使用系统字体在iTextSharp与VB.net
结束了这个问题您正在使用c#,但是下面的行与您需要的非常相似:
document.Add(New Paragraph("Hello World, Arial.", font))
Paragraph
类是您正在使用的Phrase
类的子类。就像Paragraph
一样,您需要传递font
(在这里是tablefont
)作为构造函数的第二个参数。
还有第二个原因,为什么我提到如何使用系统字体在iTextSharp与VB.net:在回答这个问题,你得到了非常详细的信息,如何使用任何字体,是在您的机器上。