如何在文档上设置iTextSharp中的特殊字符

本文关键字:iTextSharp 特殊字符 设置 文档 | 更新日期: 2023-09-27 18:03:52

我想从ASP创建PDF。净MVC。我找到了这个图书馆(http://www.codeproject.com/Articles/260470/PDF-reporting-using-ASP-NET-MVC3),它帮助了我。但是,当我想打印特殊字符,如"v",iTextShart不打印它。我发现我必须使用

new Chunk("+ěščřžýáíé=", font); 

但是我不知道如何为所有文档设置BaseFont而不仅仅是一个段落。你能帮我一下吗?

如何在文档上设置iTextSharp中的特殊字符

我对东欧字母也有类似的问题。下面这段代码帮助我解决了这个问题:

string fontPath = String.Format("{0}''{1}", Environment.GetFolderPath(Environment.SpecialFolder.Fonts), "arial.ttf");
string title = "Some Title";
iTextSharp.text.Font fontTitle = iTextSharp.text.FontFactory.GetFont(fontPath, iTextSharp.text.pdf.BaseFont.CP1250, 22f);
iTextSharp.text.Paragraph paraTitle = new iTextSharp.text.Paragraph(title, fontTitle);
paraTitle.Alignment = iTextSharp.text.Element.ALIGN_CENTER;
document.Open();
document.Add(paraTitle);

您感兴趣的是fontTitle变量。下面是为国家/地区页面1250创建基础字体的方法。您可以指定自己的基本字体设置。

你可以准备一个新的BaseFont,使用系统的Fonts文件夹:

string arialPath = Environment.GetEnvironmentVariable("SystemRoot") + "''fonts''arial.ttf";
BaseFont arial = BaseFont.CreateFont(arialPath, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
Font myFont = new Font(arial, 12, Font.NORMAL);
new Chunk("+ěščřžýáíé=", myFont);