我有一个 XFA 表单,我想用 Python 或 C# 或两者自动填写。
如果表单数据像通常的 XFA pdf 那样位于数据集中,那将很容易,但事实并非如此。以下是数据集中一些数据的示例:
<?xml version="1.0" encoding="UTF-8"?>
<topmostSubform
><Effacer
/><Rangée3 xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" xfa:dataNode="dataGroup"
/><table2
><Rangée1
><colG
><positioner xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" xfa:dataNode="dataGroup"
/></colG
><colD xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" xfa:dataNode="dataGroup"
/></Rangée1
></table2
><positioner1 xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" xfa:dataNode="dataGroup"
/><table2
><Rangée1
><colG
><positioner xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" xfa:dataNode="dataGroup"
/></colG
它指向位于文件 XDP 中位置 15 的另一个数据组。使用 python,我可以轻松访问 XDP,这是它的配置:
[xdp:xdp 115 0 R config 2 0 R template 3 0 R datasets 116 0 R localeSet 5 0 R xmpmeta 6 0 R xfdf 7 0 R form 117 0 R </xdp:xdp> 118 0 R ]
我在“表单”流中找到了所有表单数据,这是其中的一部分:
<form xmlns="http://www.xfa.org/schema/xfa-form/2.8/" checksum="8cn7XfZQ5SK/27lJmAiqCnPmd4M=">
<subform name="topmostSubform">
<field name="pMultilineModified">
<value>
<text>N</text>
</value>
<assist>
<toolTip/>
</assist>
</field>
<instanceManager name="_page1"/>
<subform name="page1">
<instanceManager name="_sf0"/>
<subform name="sf0">
<instanceManager name="_container1"/>
<subform name="container1">
<instanceManager name="_positioner"/>
<subform name="positioner">
<instanceManager name="_sf_numeroEvenement"/>
<subform name="sf_numeroEvenement">
<instanceManager name="_container"/>
<subform name="container">
<instanceManager name="_Figure"/>
<subform name="Figure">
<field name="NumeroEvenement">
<assist>
<toolTip/>
</assist>
<value override="1">
<text>12234445522</text>
</value>
</field>
</subform>
</subform>
</subform>
<field name="txt0_UnitePlaignante">
<assist>
<toolTip/>
</assist>
<value override="1">
<text>200</text>
</value>
</field>
<field name="Effacer">
<assist>
<toolTip/>
</assist>
</field>
</subform>
</subform>
所以真正的问题是:
我如何使用 iText7 在 XDP PdfObject 的第 15 位获取此“表单”流,对其进行修改以将其放回 XDP 并将 XDP 放回 pdf 中?要复制我正在尝试做的事情,可以尝试从 XDP 中获取除数据集以外的任何其他元素,修改与否,然后将其放回 pdf 中。我没能。
我试过了; Pypdf2 PDFNet(python 和 C#)、iText7..
我很绝望,我已经尝试了几个星期没有解决方案。我显然不能使用 iText FillXfaForm 方法,因为它修改了数据集,我想修改表单。