C# 在itextsharp中更改字体编码

C# 在itextsharp中更改字体编码,c#,fonts,itext,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.

我的主要目的是在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或其他东西的解决方案,它与我的代码中的解决方案真的不同,我希望能够将它集成到我的代码中。 几乎所有的解决方案都是旧的,而且可能不是最新的


那么,是否存在修改字体的简单方法?

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

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();
}

最后,我发现的最简单的方法之一是

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

joris答案的一点修改。

在上面的文章周围再贴一些代码!您创建和使用字体的方式与答案相关。你有没有想要用作TTF文件的特定字体?