C# 在itextsharp中更改字体编码
我的主要目的是在pdf中显示中文字体 我必须修改的代码是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.
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文件的特定字体?