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