PDF/A 标准是由国际标准化组织 (ISO) 定义的,它是PDF标准的一个子集,主要应用于电子文档的长期归档。当我们有多个PDF文档,而我们不确定哪些是PDF哪些是PDF/A时,就需要对文档进行检测以便进行区分。本文将介绍如何使用Free Spire.PDF组件和C#检测PDF文档是否为PDF/A。
以下是我们使用的PDF示例文档截图,它是一个PDF/A-1a文档。
Free Spire.PDF提供了两种检测PDF文档是否为PDF/A的方法:一种是使用PdfDocument.Conformance属性,另一种是使用PdfDocument.XmpMetaData属性。在使用以下代码前,需要创建C#应用程序并引用Spire.Pdf.dll到工程中。
使用PdfDocument.Conformance
//创建PdfDocument实例
PdfDocument pdf = new PdfDocument();
//加载PDF文档
pdf.LoadFromFile("Example.pdf");
//获取PDF文档的一致性等级
PdfConformanceLevel conformance = pdf.Conformance;
Console.WriteLine("该文档为:" + conformance.ToString());
使用PdfDocument.XmpMetaData
//创建PdfDocument实例
PdfDocument pdf = new PdfDocument();
//加载PDF文档
pdf.LoadFromFile("Example.pdf");
//获取XMP元数据
XmpMetadata xmpData = pdf.XmpMetaData;
//获取XML格式的XMP元数据
XmlDocument xmlData = xmpData.XmlData;
string s = xmlData.InnerXml;
Console.WriteLine(s);
从以下运行结果中,可以看到有一个名为pdfaid:part的XML标签和另一个名为pdfaid:conformance的XML标签。 PDF/A规范指出pdfaid:part代表PDF/A版本标识符(例如PDF/A-1或PDF/A-2),pdfaid:conformance代表PDF/A一致性等级(PDF/A-1的情况下为A或B)。 在这个例子中,PDF /A版本是1,PDF/A一致性等级是A。也即是说,该文件为PDF/A-1a。