C# 从XML/FDF/XFDF导入数据到PDF表单域以及将PDF表单域导出到XML/FDF/XFDF

C# 从XML/FDF/XFDF导入数据到PDF表单域以及将PDF表单域导出到XML/FDF/XFDF


XML, FDF 和 XFDF 文件简介


XML 指可扩展标记语言(Extensible Markup Language),主要被设计用来传输和存储数据。而在PDF中,我们可以将表单域的数据保存为一种单独的文件:FDF(Forms Data Format)文件。在FDF文件中,PDF表单域的数据是以键值对 (key/ value pair) 的方式存储的。同时,Adobe还提供了另一种基于XML编码格式的FDF文件:XFDF(XML Forms Data Format)文件,在XFDF文件中,PDF表单域的数据是通过XML标签以层级的方式存储的。

在本文中我将介绍如何使用免费PDF组件Free Spire.PDF来实现从XML/FDF/XFDF导入数据到PDF表单域以及将PDF表单域导出到XML/FDF/XFDF。


XML/FDF/XFDF导入到PDF表单域


该组件提供了一个PdfFormWidget类,该类中的ImportData(string fileName,DataFormat dataFormat)方法可以实现将数据从文件导入到PDF表单域,而它的DataFormat参数则指定了文件的格式,如XML、FDF或XFDF。

//加载PDF文档
PdfDocument document = new PdfDocument();
document.LoadFromFile("Import.pdf");

//获取文档中现有的表单 
PdfFormWidget loadedForm = document.Form as PdfFormWidget;

//导入XML文件到PDF
loadedForm.ImportData("ImportXML.xml", DataFormat.Xml);

//导入FDF文件到PDF
//loadedForm.ImportData("ImportFDF.fdf", DataFormat.Fdf);

//导入XFDF文件到PDF
//loadedForm.ImportData("ImportXFDF.xfdf", DataFormat.XFdf);

//保存文档
document.SaveToFile("Output.pdf");

document.Close();


PDF表单域导出到XML/FDF/XFDF


将PDF表单域中的数据导出到XML/FDF/XFDF文件,我们需要使用PdfFormWidget类中的ExportData(string fileName,DataFormat dataFormat, string formName)方法:

//加载PDF文档
PdfDocument document = new PdfDocument();
document.LoadFromFile("Export.pdf");

//获取文档中现有的表单 
PdfFormWidget loadedForm = document.Form as PdfFormWidget;

//将第一个表单中的数据导出到XML文件
PdfField field = loadedForm.FieldsWidget.List[0] as PdfField;
loadedForm.ExportData("Export.xml", DataFormat.Xml, field.Name);

//将第一个表单中的数据导出到FDF文件
//loadedForm.ExportData("ExportFDF.fdf", DataFormat.Fdf, field.Name);

//将第一个表单中的数据导出到XFDF文件
//loadedForm.ExportData("ExportXFDF.xfdf", DataFormat.XFdf, field.Name);

document.Close();

到XML的效果图:


文末附上组件的下载地址:https://www.nuget.org/packages/FreeSpire.PDF/,感兴趣的朋友可以下载试试。希望本文能给大家带来一定的帮助,如果有任何疑问,欢迎给博主留言。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值