在itextsharp

时间:2017-03-28 13:20:03

标签: c# fonts itext

我的主要目的是以pdf格式显示中文字体。

我必须修改的代码是

BackgroundColor = FontHelper.GetPdfColor(0, 0, 255),
FontColor = FontHelper.GetPdfColor(0, 255, 0),
FontStyle = FontStyle.NORMAL,
FontEncoding = FontEncodings.CP1252,
FontName = FontNames.TIMES_ROMAN

似乎问题来自FontEncodings.CP1252或/和FontNames.TIMES_ROMAN,我读了所有相关帖子我认为,但我找不到简单的解决方案。

我不太了解我正在处理的代码,所以我想尽可能少地修改它。 我看到了一些FontSelector或其他东西的解决方案,它与我的代码中的内容完全不同,并且我将它集成到我的代码中。 几乎所有的解决方案都是旧的,可​​能不是最新的。

那么,确实存在一种修改字体的简单方法吗?

2 个答案:

答案 0 :(得分:0)

这是我能想到的最小可行代码示例,它展示了如何更改一段文本的字体。

static void Main(string[] args)
{

   // setup
   PdfWriter writer = new PdfWriter(@"C:\Users\Joris Schellekens\Downloads\output.pdf");
   PdfDocument pdfDocument = new PdfDocument(writer);
   Document doc = new Document(pdfDocument);

   // font
   PdfFont font = PdfFontFactory.CreateFont(@"C:\Windows\Fonts\comicbd.ttf");

   // paragraph
   Paragraph para = new Paragraph("Lorem Ipsum Dolor Sit Amet");
   para.SetFont(font);

   // add
   doc.Add(para);

   // close
   doc.Flush();
   doc.Close();
}

答案 1 :(得分:0)

最后我找到的最简单方法之一是

string ARIALUNI_TFF = @".\SimSun.ttf"  ;
bf=BaseFont.CreateFont(ARIALUNI_TFF,BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

joris回答的一点调整。