我有一个PDF文档,其中包含多个同名文本字段。
我想设置一次值(field.setValue("text")
)和每次出现该字段的值。这些字段可能在同一页或不同页(显然是同一文档)中。
当只有一个这样的字段时,可以生成PDF。如果有多个字段,则所有字段均显示为空。如果我禁用展平,我可以在每个字段中看到文本(尽管只有在单击字段后-奇怪…)。
这里是测试PDF。
编辑:
这个问题似乎只有在我设置字段的字体时才会发生。您可以使用此字体和以下代码进行复制:
PdfFont font = PdfFontFactory.createFont("src/main/resources/fonts/Arimo-Regular.ttf", PdfEncodings.IDENTITY_H);
PdfFormField textField = acroForm.getField("test");
textField.setValue("שלום", font, 11.0f);
使用OP提供的字体和带有附加字体和字体大小参数的setValue
重载,我可以重现该问题。
该问题与您使用的特定字体或文本无关,它与您使用的设置值
过载有关:
PdfFormField.set值(String)
(除非字段是按钮字段)遍历当前字段的整个子代层次结构,并为每个子代调用另一个setValue
重载,最终也重载当前字段。Li> PdfFormField.set值(String,boolean)
和PdfFormField.set值(String,PdfFont,浮动)
假设当前字段实际上是添加外观的单个小部件到。因此,任何具有多个小部件的表单字段(甚至是具有单个小部件的字段,该字段只是没有与该字段合并)都不会为其小部件检索适当的外观,如果仅调用后者类型的setValue
重载。
考虑到以上所述,一种解决方法是以某种方式使用单个参数setValue
重载。可以通过将字体和字体大小显式设置为表单字段来实现,只需替换
textField.setValue("שלום", font, 11.0f);
由
textField.setFont(font);
textField.setFontSize(11f);
textField.setValue("שלום");
(SetExtField testTestSetFontAndTextToField具有许多可视化功能
现在这些领域确实被填满了,它们的内容出现在扁平的结果中。
不幸的是,这里出现了另一个问题:字母出现的顺序错误。仅使用基本的iText组件似乎不支持RTL语言。可能使用pdfCalligraph附加模块会增加对希伯来语等的支持,但我不知道。
我无法用你的示例文件再现这个问题。
我像这样改变字段值
PdfReader reader = new PdfReader(resource);
PdfDocument pdfDocument = new PdfDocument(reader, new PdfWriter(outputStream));
PdfAcroForm acroForm = PdfAcroForm.getAcroForm(pdfDocument, false);
PdfFormField testField = acroForm.getField("test");
testField.setValue("My test text...");
acroForm.flattenFields();
pdfDocument.close();
(SetTextField test
testsettexttofield,带有许多可视化功能
)
但结果是预期的:
该字段的所有三个实例都已填写。这既适用于展平,也适用于无展平,同时适用于7.1.4和当前的7.1.5-SNAPSHOT。
但是,从结果PDF的内部来看,有一个问题
值V在抽象字段和每个小部件中都设置。它应该只在野外。
我有一个Spring输入通道,定义如下 文件名示例为test.sqq。SQQ是客户端用于将文件放在FTP中的文件格式。但是,我看到spring ftp适配器一次又一次地使用不同的文件名获取相同的文件。所以第一次是test.sqq。然后下一次是test.sqq-20170204.pqq,然后下一次是test.sqq-20170204.pqq.20170304.pqq。这种情况还在继续。我在我的一端有
问题内容: 我今天在另一个问题中提出了这个问题,但是 由于措辞的方式,恐怕无法解决任何问题。 我有一个json输入,其中包含以下数据: 杰森 如您所见,option_value项是一个对象中的Array和 另一个对象中的简单字符串。 我怎样才能让Gson正确处理呢?我的类将此描述为 List对象,因此它适用于option_value是 数组的前几个项目,但是当它成为字符串时,应用程序崩溃,并且我收
在Spring IOC中,bean的两个定义(具有相同的名称和类)是否有效? 我有两个bean定义文件包含在web中。xml。参见下面的示例。 应用Context-beans1.xml applicationContext-beans2。xml 到目前为止,我还没有遇到任何问题。但是,这可能会影响到多线程和集群的现实环境吗? 注意:这两个XMLs都被加载,因为我可以使用在这两个XMLs中定义的其他
我使用的是,我需要展平包含同名字段的文档。 我创建的文档如下所示: 在那之后,我试图像下面这样压平文档: 我的主要方法是: 展平后,我得到的文档包含一个展平字段,但我必须得到两个展平字段。 如何解决此问题?
以同样的方式创建2个PdfSignatureFormFields,我在Adobe Reader中以不同的方式显示了2个字段:一个带有指示签名字段的小图片,另一个没有指示。 我使用细胞setNextRenader调用来创建这些字段,如下一个摘录所示:
本文向大家介绍在MongoDB的另一列中设置相似的名称?,包括了在MongoDB的另一列中设置相似的名称?的使用技巧和注意事项,需要的朋友参考一下 只需循环并从另一列设置列值。让我们创建一个包含文档的集合- 在方法的帮助下显示集合中的所有文档- 这将产生以下输出- 以下是从MongoDB的另一列中设置相似名称的查询- 在方法的帮助下显示集合中的所有文档- 这将产生以下输出-