Localization iTextSharp-PDF中的预填充汉字在文本字段聚焦之前不可见

Localization iTextSharp-PDF中的预填充汉字在文本字段聚焦之前不可见,localization,itextsharp,chinese-locale,Localization,Itextsharp,Chinese Locale,我正在用预先填充的中文值创建PDF,但打开PDF时,包含中文文本的所有文本字段都是空的。聚焦文本字段时,中文文本可见,但在取消聚焦字段时再次隐藏。可能是什么问题?请分享更多信息,因为iText不生成外观的原因可能不止一个 A.第一个原因在StackOverflow问题“”中解释。在本例中,PDF包含一个参数,该参数指示iText不生成外观,这将解释为什么在单击字段之前看不到任何值,在这种情况下,查看器将创建这些值 B.第二个原因在第8.3.3节(标题为“文本字段和字体”)中解释。在这种情况下,P

我正在用预先填充的中文值创建PDF,但打开PDF时,包含中文文本的所有文本字段都是空的。聚焦文本字段时,中文文本可见,但在取消聚焦字段时再次隐藏。可能是什么问题?

请分享更多信息,因为iText不生成外观的原因可能不止一个

A.第一个原因在StackOverflow问题“”中解释。在本例中,PDF包含一个参数,该参数指示iText不生成外观,这将解释为什么在单击字段之前看不到任何值,在这种情况下,查看器将创建这些值

B.第二个原因在第8.3.3节(标题为“文本字段和字体”)中解释。在这种情况下,PDF中的参数不会阻止创建字段外观,但iText无法阻止,因为您没有提供知道如何显示汉字的字体

例如,参见本书图8.3和8.4

在图8.3中,您可以看到上面的窗口中没有显示中文文本。通过固定形式(使用两种不同的策略),中文文本将显示在下面两个窗口中。请注意,在中间窗口的情况下,中文文本不会出现在所有查看器中。

在图8.4中,您可以看到韩文文本既不显示在上面的窗口中,也不显示在第三个窗口中。在所有其他窗口中,使用了不同的策略来解决此问题:

这样一来,我们就无法在一个答案中讨论所有不同的策略了。相反,请看一看示例(对于C#版本,请看示例)。我的猜测是,如果您使用的字体将在文档中嵌入子集(在示例中使用了
arialuni.ttf
),那么您将从
AddSubstitutionFont()
方法中获益最大


A.的情况下,这种现象也与其他语言有关。对于B.,参数是正确的,但您没有提供可用于生成外观的字体。

设置needAppearancess=True并减小字体大小解决了问题。Thx!好的,请考虑到当您依赖查看器生成外观时,并非所有用户都会看到文本:并非所有系统的系统上都有所需的字体。我遇到了一个新问题:因此,当设置neededapperance=true时,预选的单选按钮选择不再可见,有什么想法吗?当Adobe Reader创建外观时,将使用单选按钮和复选框的默认外观。这意味着当按钮或框未被选中时,不会显示任何内容。这很正常。在这种情况下,预期表示按钮的圆形、方形或任何形状都是内容流的一部分。请注意,在评论部分发布新问题是违反SO规则的。新问题需要。。。新问题。我们通过使用AddSubstitutionFont()方法而不是needAppearancess=True来解决它。很抱歉在此处发布此问题,以后将提出新问题。