1

我有一个 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 的任何更改。

4

0 回答 0