Validation 如果PDF文档符合PDF/a,我如何测试它?

Validation 如果PDF文档符合PDF/a,我如何测试它?,validation,pdf,test-suite,pdfa,Validation,Pdf,Test Suite,Pdfa,我们编写了一个创建PDF文件的软件。我们如何检查生成的pdf文件是否与pdf/A兼容?有可用的测试套件吗?您有Adobe PDFL或Acrobat Professional吗?如果需要,您可以使用飞行前操作。网站上有PDF/A验证程序列表: 此处提供免费的在线PDF/A验证程序: 关于许多PDF/A验证程序准确性的报告可从PDFLib获得: 她还说: 如果您下载最新版本的Adobe Acrobat Reader,它将告诉您的pdf是否兼容pdf/A。只要打开PDF文件,就会出现一个蓝色的大

我们编写了一个创建PDF文件的软件。我们如何检查生成的pdf文件是否与pdf/A兼容?有可用的测试套件吗?

您有Adobe PDFL或Acrobat Professional吗?如果需要,您可以使用飞行前操作。

网站上有PDF/A验证程序列表:

此处提供免费的在线PDF/A验证程序:

关于许多PDF/A验证程序准确性的报告可从PDFLib获得:

她还说:


如果您下载最新版本的Adobe Acrobat Reader,它将告诉您的pdf是否兼容pdf/A。只要打开PDF文件,就会出现一个蓝色的大标记

OpenOffice支持PDF/A格式。 出于某种原因,称为“PDF/A-1”
对于PDFX1A2001,您将FilterData设置为HashMap('SelectPdfVersion',1)//1,使用OPEN validator进行pdf验证:

DROID(数字记录对象识别)

JHOVE-JSTOR/Harvard Object Validation Environment(哈佛对象验证环境)

为不同的用户提供了良好的反馈

  • PDF/A1-a
  • PDF/A2-a
  • PDF/A2-b
  • PDF/A1-b
  • PDF/A2-u

一些不熟悉PDF的人的上下文/A:Related:是一个验证许多方面并解释失败原因的工具。“移动”到正在创建一个方面。这是错误的。只有PDF/A签名可用时,阅读器才会显示。如果它是一个有效的PDF/a文件就不会了。哦,我明白了。我不知道。@Horcrux7你能找到你的资料来源吗?你怎么知道的?我使用了一些API来生成PDF/a和不符合PDF/a的文件。当我生成PDF/a文件时,Adobe Reader 10将启动,顶部有一个信息栏:“您打开的文件符合PDF/a标准,并且以只读方式打开以防止修改”。你能分享一下你对此的了解吗?我们已经编写了一个生成PDF和PDF/a文件的软件(见我的原始帖子)。我知道在Adobe Reader中也没有PDF/A合规文件显示为PDF/A文件。我们只需要写PDF/A签名。这个是开源的,现在称为PDFBox Preflight。不幸的是,PDF.org上的链接不再可用。在这里,您可能会找到最“官方”的PDF验证在线工具。这是一款全新的测试版。在此之前,我还坚持Adobe AcrobatDROID的飞行前验证不进行验证,它只识别。JHOVE确实验证PDF,但不是PDF/A。JHOVE确实验证PDF/A。请查看以下网站:……Ibn Saeed:引用链接文档:注意,PDF模块不会解析流上的内容,因此无法确定是否符合ISO标准要求的PDF/A。@mykhal«这是不可能的,由于PDF/A规则的一部分不是机器可检查的AFAIK(如“元数据匹配数据”--jhove无法理解文档的语义。)»jhove的PDF/A模块有很多缺陷。它的输出几乎毫无意义。免费,没有垃圾邮件的风险+对于这个答案,我的答案是1。谢谢,太好了。这为我的文件提供了一个PDF/a“违规”列表,例如密钥父级的值是271 0 R,但必须是208 0 R。但我不知道如何“修复”这些。我试着保存在免费的AdobeAcrobat中,但没有任何帮助。在我的mac笔记本电脑上,有件事对我来说很有用:我在mac“预览”软件中打开了我的(普通)PDF文件。我将其“打印”为.ps文件。然后我在预览中重新打开了.ps文件并保存为PDF。它现在通过了pdf/a合规性。谢谢@Michael,这很有帮助!对于那些在Linux上的用户,我尝试了类似的方法,同样有效:我在上打开文件,并将其打印成PDF文件。生成的文件通过了PDF/A验证!注意,仅仅执行“文件>另存为”是不够的;我必须使用打印菜单才能工作。 "SelectPdfVersion"
0 = PDFXNONE
1 = PDFX1A2001
2 = PDFX32002
3 = PDFA1A
4 = PDFA1B
FilterData HashMap('SelectPdfVersion',1) //1 for PDFX1A2001