我有一个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进行任何更改以保存。