首页 > 解决方案 > 使用 itext7 填充 pdf 表单时调用 FillXfaForm 后,XML 数据集在 xfa.datasetsNode 中重复

问题描述

正如标题所说,我在使用 iTtext7 填充 pdf 时遇到了数据集 xml 属性重复的问题。当您打开 pdf 并完成手动更改并保存它时,PDF 文件会被填充,但会导致问题。所有 pdf 字段都被清除干净。

有没有办法防止重复或删除重复的代码?

用于填充 pdf 的 c# 代码

       PdfReader reader = new PdfReader(templatePdfFile);
       reader.SetUnethicalReading(true);

       PdfWriter writer = new PdfWriter(OutputPdfFile);

       StampingProperties properties = new StampingProperties().UseAppendMode();

       PdfDocument pdfDocument = new PdfDocument(reader, writer, properties);
       PdfAcroForm form = PdfAcroForm.GetAcroForm(pdfDocument, true);
       XfaForm xfa = form.GetXfaForm();

       //Duplication happens here
       xfa.FillXfaForm(XmlReader.Create(new StringReader(xmlDoc.OuterXml)));
       xfa.Write(pdfDocument);
       pdfDocument.Close();

调用 FillfaForm 之前的 XML

<xfa:datasets xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/">
  <xfa:data>

之后

<xfa:datasets xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/">
  <xfa:data>
    <xfa:datasets xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/">
      <xfa:data>

标签: c#xmlpdfitext7

解决方案


推荐阅读