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