加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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很好地显示了我所知道的所有欧洲字体的字符.其他字体可能无法显示尽可能多的字符.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读