无法在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}); 

无法在iTextsharp中更改字体

如果你正在开始一个新的项目,我建议使用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:在回答这个问题,你得到了非常详细的信息,如何使用任何字体,是在您的机器上。