c# - 使用 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>
解决方案
推荐阅读
- excel - 捆绑使用 excel 搜索数字
- java - 在多个服务器中处理跨多个应用程序的会话 - tomcat 和 java
- python - pytorch 用视图替换张量中的数据
- c# - 可以获得有关空引用异常的更多详细信息吗?
- dotnetbrowser - DotNetBrowser\dotnetbrowser.dmp.dir 正在用 dmp 文件填充 c: 驱动器
- android - Web App似乎以不同的方式触发移动设备色温?
- java - @Recover 方法未被 Spring AOP 建议拦截
- c++ - 'substr()'有什么替代方法吗?
- android - 是否可以寻址存储在本地手机存储(内部或外部)中的文件?
- javascript - 在 Flickity 插件上显示“X”页点数