我有一个pdf。 xfa:datasets节点如下所示:
<xfa:datasets xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/"><xfa:data xfa:dataNode="dataGroup" /></xfa:datasets>
因此,我无法提取有关底层架构的信息,因此我无法生成xml来填充此内容。
pdf使用javascript向表中添加行,方式如下:
this.resolveNode('document_table.Table3._user_input').addInstance(1);
在Xfa.TemplateSom
中使用iTextSharp,我可以找到对表单元素的引用。在DomDocument
我可以搜索并找到xml中的各种元素,但这就是我被困的地方。似乎与XFA数据没有任何关系,我尝试了XFA工作室演示并且演示确认pdf没有XFA数据。
如果不是XFA而不是AcroField,我不确定这是什么类型的表单。
布鲁诺,我买了你的书,虽然我还没有读到它的封面,但据我所知,它并没有涵盖这种情况。任何人都有关于如何填写这种形式的见解,我将不胜感激。现在,我想知道是否必须添加模仿动作并设置数据的javascript。由于有许多表单,每个表单都有不同的布局,手动解析所有表单以获取层次结构并自行复制javascript是繁重的,坦率地说我不确定这种方法是否会成功。
答案 0 :(得分:2)
表单是一个XFA表单,DataDescription
丢失的事实很可惜,但它没有异常。数据描述是可选的,不是强制性的。
如果您打算用iText填写表单,那么您应该忘记添加行的JavaScript。您不应混淆手动数据输入 - 用户逐行输入数据,手动添加行 - 使用自动数据输入 - 您可以以XML文件的形式提供数据。如果您有一个包含行的表,那么这些行将填充与源XML中的数据行一样多的行。
真正的问题是:如果没有数据描述,您如何撰写该XML?
一旦了解了XML的预期结构,就不必担心JavaScript。处理用户操作的JavaScript在自动填表表单的上下文中无关紧要。在使用iText填充XFA表单的上下文中唯一重要的JavaScript是自动格式化数据的JavaScript(例如格式化日期,货币......)。