2013-02-21 62 views
1

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

+0

请出示你的代码的相关部分。即特别是您定义您使用的字体的代码。 – mkl 2013-02-21 11:26:56

+0

我没有在我的代码中定义任何字体。 – 2013-02-21 11:29:32

+0

在这种情况下,看看布鲁诺的答案。 – mkl 2013-02-21 11:53:52

回答

3

此所述的iText(夏普)文档中进行说明。如果您有不同语言的字符字符串,你需要使用一个FontSelector如图this example

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光强下。现在TEXT中的所有英文字符都将在Times Roman中显示。你说的字符缺失将使用MSung-Light渲染。如果你改变MSung光强和罗马时代,完整TEXT将在MSung-光呈现的顺序,所以一定要选择你的字体明智。该命令很重要,并且您未定义字体的TEXT中的每个字符都将丢失。

+0

感谢布鲁诺。我试过你给的解决方案。有效。非常感谢。 – 2013-02-21 12:22:40

+0

如果答案解决了问题,您可以接受它。这样,具有相同问题的人将认识到它是解决方案。 – 2013-02-21 13:06:47