使用iTextSharp填写XFA PDF,数据不保存(C#)

时间:2016-01-11 21:19:08

标签: c# pdf itextsharp xfa

我有一个XFA PDF文件(我没有创作)。这是我试图填写的第三方表格。我手动填写表单,然后我使用iTextSharp保存完整的XML DomDocument。现在我尝试以编程方式应用相同的XML文件。但是,生成的PDF没有填写任何字段。这是我用来应用XML文件的代码:

PdfReader pdfReader = new PdfReader(inputPdf);
using (MemoryStream ms = new MemoryStream())
{
    using (PdfStamper stamper = new PdfStamper(pdfReader, ms, '\0', true))
    {
        XfaForm xfaForm = new XfaForm(pdfReader);
        XmlDocument doc = new XmlDocument();
        doc.Load(inputXml);
        xfaForm.DomDocument = doc;
        xfaForm.Changed = true;
        XfaForm.SetXfa(xfaForm, stamper.Reader, stamper.Writer);
    }

    var bytes = ms.ToArray();
    System.IO.File.WriteAllBytes(outputPdf, bytes);
}

inputPdf是原始空PDF文件的路径。

inputXml是从填写的PDF文件中提取的XML文件的路径。这是整个XML文件,而不仅仅是数据集部分。

有趣的是,如果我创建像这样的PdfStamper对象:

new PdfStamper(pdfReader, ms);

然后我在字段中看到数据,但当然我有相关的问题而没有附加。

有关我可能做错的任何建议吗?我似乎无法对DomDocument进行任何更改以保存。

0 个答案:

没有答案