iTextSharp显示希腊字符
本文关键字:字符 显示 iTextSharp | 更新日期: 2023-09-27 18:20:41
我正在尝试将西格玛字符显示为由C#
(Framework 4
)应用程序中的代码生成的PDF。我使用的是iTextSharp
(4.1.2.0版)。
每当我尝试使用以下代码段打印我的字符时。。。
string l_sTmpText = "'u03A3";
l_table.AddCell(new Phrase(l_sTmpText, MyFont));
我的PDF中只有一个空白。在进行调试时,我的西格玛字符在Visual Studio中正确显示,所以我怀疑这是一个编码问题。
我发现并阅读了这篇文章:iTextSharp国际文本。。。
但我仍然无法使它发挥作用。我试着创建一个像这样的BaseFont
:
private static BaseFont MySpecialBaseFont = iTextSharp.text.pdf.BaseFont.CreateFont("C:'Windows'Fonts'Arial.ttf", iTextSharp.text.pdf.BaseFont.IDENTITY_H, iTextSharp.text.pdf.BaseFont.EMBEDDED);
我的问题是构造Phrase
对象需要Font
而不是BaseFont
。我被困在这里。。。
我发现了我的错误。。。开始是正确的:
private static BaseFont MySpecialBaseFont = iTextSharp.text.pdf.BaseFont.CreateFont("C:''Windows''Fonts''Arial.ttf", iTextSharp.text.pdf.BaseFont.IDENTITY_H, iTextSharp.text.pdf.BaseFont.EMBEDDED);
然后我不得不从我的BaseFont:创建一个字体(我被卡住了)
private static Font MySpecialCharfont = new iTextSharp.text.Font(MySpecialBaseFont);
然后我可以创建我的Phrase对象:
new Phrase(l_sTabulationString + l_sTmpText.ToLowerInvariant(), MySpecialCharfont)
请注意ToLowerInvariant(),它允许我获得西格玛字符的lowerCase版本。希望这能帮助其他人。。。