我有一些PDF文件目录中没有/Type
的值。
他们有一个像
<<
/Pages 3 0 R
/Metadata 4 0 R
>>
但是https://www.safaribooksonline.com/library/view/pdf-explained/9781449321581/ch04.html说文档目录(打开链接并搜索关键字&#39;文档目录&#39;)
/Type*(Required) Must be /Catalog.
但即使如上所述缺少这一点,PDF也会被Acrobat Reader打开。
那么,即使文档目录中缺少/Type
,为什么这类PDF没有被标记为已损坏?或者它是可选的?
我的问题是我必须过滤掉损坏的PDF文件。我正在使用jPod库,如果/Type
不等于/Catalog
或者缺少{{1}},那么该库会将PDF标记为已损坏。
我们可以删除此支票吗?
答案 0 :(得分:5)
根据表28(在page 73 of the official ISO 32000-1 standard as published by Adobe的第7.7.2章中),文档目录对象中的/Type
条目显然是 required 。
(另外:不要依赖你链接的书。这本书是一个很好的资源,毫无疑问 - 但PDF-1.7文件格式的官方规范是ISO标准,而文件我与上述相关联。始终检查标准 - 仅使用您的书籍以便更轻松地访问某些主题,但不要忽视官方标准!)
不幸的是,有很多实现没有抱怨b0rken PDF文件,并且在没有通知用户或开发人员遇到任何问题的情况下打开文件。他们默默地“修复”这些文件,但他们没有告知用户这个。 Adobe Acrobat软件就是这种行为的罪魁祸首。
这很糟糕, 甚至非常糟糕! ,因为它鼓励PDF文件格式的其他开发人员和实现者变得同样邋..
最终结果是:所有PDF制作软件的质量都会退化。它将打开越来越多的弱点,将来可以被“坏人”利用。
不要那样 - 保持检查! 如果你不这样做,你就会对PDF软件质量的普遍下降感到内疚。
如果你是的话,该死的!