1

iText 7.0.0

我不确定这是 LiveCycle/XFA 的功能还是我们的表单团队采用的约定,但很多表单字段限定名称最终看起来像:

form[0].someForm_page1[0].table1[0].row1[0].cell1[0].Text[0]
form[0].someForm_page1[0].table1[0].row1[0].cell1[0].Text[1]

合并时(PdfDocument.copyTo...包括 PdfPageFormCopier),仅复制页面 /Widgets 的直接父级(尽管我在上面提到了 XFA,但这种行为也适用于非混合表单)。

PdfDocument src = createForRead("someForm.pdf");
PdfDocument merged = createForWrite("merged.pdf");
src.copyPagesTo(1, src.getNumberOfPages(), merged, new PdfPageFormCopier());
merged.close();
src.close();

结果字段看起来像

 cell1[0].Text[0]
 cell1[0].Text[1]

或更糟糕的是,对于这样的情况

page1.section1.Text1
page2.section1.Text1

不构建完整的层次结构可能会导致唯一字段变得不唯一

section1.Text1
section1.Text1

在 SmartMode 中,情况似乎更糟(这似乎已在 7.0.1-20162707 中修复!)

page1.Text1
page2.Text1

合并到

page1.Text1
page1.Text1
4

1 回答 1

0

这已在 iText 7.0.1 中修复

于 2016-09-28T20:07:34.160 回答