我的主要目的是以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或其他东西的解决方案,它与我的代码中的内容完全不同,并且我将它集成到我的代码中。 几乎所有的解决方案都是旧的,可能不是最新的。
那么,确实存在一种修改字体的简单方法吗?
答案 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回答的一点调整。