我创建PDF与预先填充的中文值,但当打开PDF时,所有包含中文文本的文本框都是空的。当聚焦一个文本字段时,中文文本是可见的,但当该字段不对焦时,中文文本再次被隐藏。有什么问题吗?
发布于 2014-01-29 08:38:37
请分享更多的信息,因为可能有一个以上的原因,外观不是由iText产生的。
A.第一个原因在StackOverflow问题"扁平后丢失的AcroForm值“中解释。在这种情况下,PDF包含一个参数,指示iText不要生成外观,这将解释为什么在单击字段之前看不到任何值,在这种情况下,查看器将创建它们。
B.第二个原因在我的书的第8.3.3节(题为“文本字段和字体”)中作了解释。在这种情况下,PDF中的参数并不会阻止字段外观的创建,但是iText没有做到这一点,因为您没有提供一个知道如何显示汉字的字体。
例如,见书中的图8.3和8.4。
在图8.3中,您可以看到中文文本没有显示在上面的窗口中。通过修改表单(使用两种不同的策略),中文文本出现在下面两个窗口中。注意,在中间窗口的情况下,中文文本不会出现在所有的观众中。

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

这将使我们无法在回答中讨论所有不同的战略。相反,请查看TextFontFields示例(对于C#版本,请查看移植实例)。我的猜测是,您将从AddSubstitutionFont()方法中获益最大,前提是您使用一种字体,其中一个子集将嵌入到文档中(在示例中使用arialuni.ttf )。
就A.而言,这一现象也与其他语言有关。对于B.,该参数是正确的,但您没有提供可用于生成外观的字体。
https://stackoverflow.com/questions/21424357
复制相似问题