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。我被困在这里。。。

iTextSharp显示希腊字符

我发现了我的错误。。。开始是正确的:

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版本。希望这能帮助其他人。。。