首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我不能用itext设置xfa数据。

我不能用itext设置xfa数据。
EN

Stack Overflow用户
提问于 2014-10-27 07:56:19
回答 1查看 1K关注 0票数 1

我有一个pdf,这是由GMC Printnet设计师7.0。我有一个带有xfa模板的xml文件。我想合并他们和嵌入数据在pdf。(我不想附加xml!)

我可以读取xml数据,我可以读取输入pdf,我可以启动一个内存流并使用它生成输出数据。但是当我检查与itext一起生成的pdf时,我没有看到xfa表单。

下面是我的c#代码和xml文件:

代码语言:javascript
复制
PdfReader reader = new PdfReader("in.pdf");
    MemoryStream ms = new MemoryStream();
    PdfStamper stamper = new PdfStamper(reader, ms);
    XfaForm xfa = new XfaForm(reader);
    XmlDocument doc = new XmlDocument();
    doc.Load("in.xml");
    xfa.DomDocument = doc;
    xfa.Changed = true;
    XfaForm.SetXfa(xfa, stamper.Reader, stamper.Writer);
    xfa.XfaPresent = true;
    stamper.Close();
    File.WriteAllBytes("out.pdf", ms.ToArray());

XML文件

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?><xfa:data xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/">
<Invoice>
<InvoiceNr>1010101010101010</InvoiceNr>
<DateIssuance>2014-07-22</DateIssuance>
<PaymentDueDate>2014-09-09</PaymentDueDate>
<AmountToBePaid>53,25</AmountToBePaid>
</Invoice>
</xfa:data>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-27 11:43:34

正如我在评论中解释的那样,我不理解您的代码(我也不知道您在哪里找到了它)。官方文件上说你应该填写如下表格:

代码语言:javascript
复制
using (PdfStamper stamper = new PdfStamper(reader, ms)) {
    AcroFields form = stamper.AcroFields;
    XfaForm xfa = form.Xfa;
    xfa.FillXfaForm(XmlReader.Create(new StringReader(xml)));
} 

请参阅XfaMovies示例。有关C#版本,请参见http://tinyurl.com/itextsharpIIA2C08

更新:

在注释中,您添加了指向PDF和XML文件的链接。这两个文件都有问题:

  1. PDF文件不是表单。最多可以使用它作为XFAF表单中的背景PDF。这只能手动完成,并且需要一个设计器,例如。
  2. XML文件不是XFA流!正如我的书( OP将其定义为“无助”)中所描述的,XFA流由不同的部分组成,如config部件、localeSet部件、xmp部件,但更重要的是包含datadatadescription部件的template部件和datasets部件。共享的XML只包含data部件,没有datadescription,也没有template。因此,这个XML永远不能集成到带有XFA表单的PDF文件中,结果是:缺少太多的信息。

现在我已经看到了你在问题中提到的文件,很明显你在问一些不可能的事情。您需要将XML的xsd导入到Adobe设计器等工具中,然后手动定义模板中字段的位置(该信息在xsd中缺失),并将LiveCycle定义为表单的背景。

考虑到您共享的文件,无法自动化此过程。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26583121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档