3

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

4

2 回答 2

5

这在 iText(Sharp) 文档中进行了解释。当您有一个包含不同语言字形的字符串时,您需要使用 a 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您未定义字体的每个字符都将丢失。

于 2013-02-21T11:34:16.767 回答
0

“SIMSUN.ttf”对我有用。你可以从网上下载它。 https://www.wfonts.com/font/simsun

在此处输入图像描述

于 2020-12-24T11:36:36.703 回答