无法在 iTextsharp 中更改字体?
Unable to change font in iTextsharp?
我正在使用 iTextSharp 生成 table 并以 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});
如果您正在开始一个新项目,我建议您使用 iText 7 for iTextSharp,因为我们在该版本中引入了字体继承;见 Chapter 1: Introducing the PdfFont class
如果你坚持使用 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));
您会在 iText in Action 一书中的 chapter 11: Choosing the right font 中找到大量旧字体示例。该页面上显示的示例位于 Java 中,但如果向下滚动,您将找到所有相应 .cs
文件的链接。
还有内容丰富的 FAQ section about fonts,包含对过去发布在 Whosebug 上的问题的回答。
虽然不是完全重复,但我通过参考How to use System Font in iTextSharp with VB.net
结束了这个问题
您正在使用 C#,但以下行与您需要的非常相似:
document.Add(New Paragraph("Hello World, Arial.", font))
Paragraph
class 是您正在使用的 Phrase
class 的子 class。就像 Paragraph
一样,您需要将 font
(在您的例子中是 tablefont
)作为构造函数的第二个参数。
我提到 How to use System Font in iTextSharp with VB.net 的第二个原因:在该问题的答案中,您将获得有关如何使用计算机上可用的任何字体的非常详细的信息。
我正在使用 iTextSharp 生成 table 并以 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});
如果您正在开始一个新项目,我建议您使用 iText 7 for iTextSharp,因为我们在该版本中引入了字体继承;见 Chapter 1: Introducing the PdfFont class
如果你坚持使用 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));
您会在 iText in Action 一书中的 chapter 11: Choosing the right font 中找到大量旧字体示例。该页面上显示的示例位于 Java 中,但如果向下滚动,您将找到所有相应 .cs
文件的链接。
还有内容丰富的 FAQ section about fonts,包含对过去发布在 Whosebug 上的问题的回答。
虽然不是完全重复,但我通过参考How to use System Font in iTextSharp with VB.net
结束了这个问题您正在使用 C#,但以下行与您需要的非常相似:
document.Add(New Paragraph("Hello World, Arial.", font))
Paragraph
class 是您正在使用的 Phrase
class 的子 class。就像 Paragraph
一样,您需要将 font
(在您的例子中是 tablefont
)作为构造函数的第二个参数。
我提到 How to use System Font in iTextSharp with VB.net 的第二个原因:在该问题的答案中,您将获得有关如何使用计算机上可用的任何字体的非常详细的信息。