1

设置
a) 我有一个阅读器扩展的 XFA 表单(包含 2 个条形码)
b) 我有预填充 XML

预期解决方案
- 使用 XML 预填充 XFA 表单,然后展平 PDF(以便它可以在浏览器等中查看

)工作
- XFA 表单的预填充工作正常,所有字段和条形码都根据需要填充(生成 1 个寻呼机) - 看起来很完美

问题/什么不起作用
- 我的代码的第二部分拾取预填充的 PDF,然后展平 XFA 表单,生成的 pdf 现在神奇地变成了 2 个寻呼机。
- 体内条形码出现在第一页,所有其他内容被错误地推送到第二页。
- 所有元素的位置都相对正确,但是分成两页 - 它们都应该在一页上。
- 表单和字段被展平并在浏览器中


查看为了感兴趣

,我使用各种形式的代码“展平”了表单,示例如下

PDF FLATTENING CODE A

PdfReader reader = new PdfReader(src);
PdfStamper stamper = new PdfStamper(reader, new
FileOutputStream(dest));
stamper.setFormFlattening(true);
stamper.close();



PDF 展平代码 B

Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(new   File(dest)));
XFAFlattener xfaf = new XFAFlattener(document, writer);
xfaf.flatten(new PdfReader(fileToByteArray(src)));
document.close();



问题 - 我是否使用了错误的“扁平化”代码?
- 有没有人经历过类似的事情?
- 为什么会发生这种情况
- 如何解决这个问题

非常感谢这里的任何输入。

编号:SUP-1858

4

1 回答 1

1

只是为了让社区保持更新

解决方案 (不太理想)
我们从 XFA 中删除了一个神秘的空白子表单,并且扁平化的 iText 解决方案有效 - 1 个漂亮的页面!

我的解释:
iText 如何处理/解释 XFA 空白子表单与 AEM Forms(在
Livecycle
Forms 下)如何处理/解释空白 XFA 子表单似乎略有不同。

如果我们有任何其他发现,我们将(8 BIT PLATOON)更新此页面并让您知道。

感谢 iText 团队在后台提供协助。

于 2017-03-16T13:00:14.357 回答