如何在用iTextSharp创建的pdf文件中显示中文字符

时间:2013-02-21 10:04:54

标签: c# itextsharp

我的字符串数据包含一些英文字符和一些中文字符。我正在使用iTextSharp创建包含此数据的pdf文件。创建pdf文件后,当我打开它时,pdf只包含英文字符。它没有显示汉字。 你能告诉我如何在pdf文件中显示中文字符吗?请注意,我写给pdf的字符串数据包含动态语言字符,有时是英文,有时是中文,有时是日文等。

1 个答案:

答案 0 :(得分:4)

这在iText(夏普)文档中有解释。当您拥有包含来自不同语言的字形的字符串时,您需要使用this example中显示的FontSelector

FontSelector selector = new FontSelector();
selector.AddFont(FontFactory.GetFont(FontFactory.TIMES_ROMAN, 12));
selector.AddFont(FontFactory.GetFont("MSung-Light", "UniCNS-UCS2-H", BaseFont.NOT_EMBEDDED));
Phrase ph = selector.Process(TEXT);
document.Add(new Paragraph(ph)); 

在这种情况下,我首先将Times Roman添加到字体选择器,然后是MSung-Light。现在TEXT中的所有英文字符都是Times Roman。您说缺少的字符将使用MSung-Light呈现。如果您更改了MSung-Light和Times Roman的顺序,则完整的TEXT将在MSung-Light中呈现,因此请确保明智地选择字体。订单很重要,TEXT中未定义字体的每个字符都将丢失。