c# – iTextSharp国际文本
发布时间:2020-12-15 06:14:35 所属栏目:百科 来源:网络整理
导读:我在asp.net页面中有一个表,并尝试将其导出为PDF文件,我有几个未生成的PDF文件中显示的国际字符,任何建议, 提前致谢 解决方法 正确显示替代字符集(俄语,中文,日语等)的关键是在创建BaseFont时使用IDENTITY_H编码. Dim bfR As iTextSharp.text.pdf.BaseFont b
我在asp.net页面中有一个表,并尝试将其导出为PDF文件,我有几个未生成的PDF文件中显示的国际字符,任何建议,
提前致谢 解决方法
正确显示替代字符集(俄语,中文,日语等)的关键是在创建BaseFont时使用IDENTITY_H编码.
Dim bfR As iTextSharp.text.pdf.BaseFont bfR = iTextSharp.text.pdf.BaseFont.CreateFont("MyFavoriteFont.ttf",iTextSharp.text.pdf.BaseFont.IDENTITY_H,iTextSharp.text.pdf.BaseFont.EMBEDDED) IDENTITY_H为您选择的字体提供unicode支持,所以您应该能够显示几乎任何字符.我使用了俄语,希腊语和所有不同的欧洲语言信件. 编辑 – 2013年5月28日 这也适用于iTextSharp的v5.0.2. 编辑 – 2015年6月23日 下面给出了一个完整的代码示例(在C#中): private void CreatePdf() { string testText = "???ě???"; string tmpFile = @"C:test.pdf"; string myFont = @"C:&;<valid path to the font you want>>verdana.ttf"; iTextSharp.text.Rectangle pgeSize = new iTextSharp.text.Rectangle(595,792); iTextSharp.text.Document doc = new iTextSharp.text.Document(pgeSize,10,10); iTextSharp.text.pdf.PdfWriter wrtr; wrtr = iTextSharp.text.pdf.PdfWriter.GetInstance(doc,new System.IO.FileStream(tmpFile,System.IO.FileMode.Create)); doc.Open(); doc.NewPage(); iTextSharp.text.pdf.BaseFont bfR; bfR = iTextSharp.text.pdf.BaseFont.CreateFont(myFont,iTextSharp.text.pdf.BaseFont.EMBEDDED); iTextSharp.text.BaseColor clrBlack = new iTextSharp.text.BaseColor(0,0); iTextSharp.text.Font fntHead = new iTextSharp.text.Font(bfR,12,iTextSharp.text.Font.NORMAL,clrBlack); iTextSharp.text.Paragraph pgr = new iTextSharp.text.Paragraph(testText,fntHead); doc.Add(pgr); doc.Close(); } 这是创建的pdf文件的屏幕截图: 要记住的一个重要的一点是,如果您选择的字体不支持您要发送到pdf文件的字符,那么在iTextSharp中所做的任何事情都将会改变. Verdana很好地显示了我所知道的所有欧洲字体的字符.其他字体可能无法显示尽可能多的字符. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |