我的字符串数据包含一些英文字符和一些中文字符。我正在使用iTextSharp创建包含此数据的pdf文件。创建pdf文件后,当我打开它时,pdf只包含英文字符。它没有显示汉字。 你能告诉我如何在pdf文件中显示中文字符吗?请注意,我写给pdf的字符串数据包含动态语言字符,有时是英文,有时是中文,有时是日文等。
答案 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
中未定义字体的每个字符都将丢失。