Adobe在属性中显示不正确的PDF版本(PDF)
我的PDF在标题中包含“%PDF-1.3”。这意味着PDF版本是1.3,但我的系统上安装的Adobe reader(XI)在文件>属性中查看时显示为1.5 什么是对的 1.3还是1.5Adobe在属性中显示不正确的PDF版本(PDF),pdf,properties,adobe,metadata,version,Pdf,Properties,Adobe,Metadata,Version,我的PDF在标题中包含“%PDF-1.3”。这意味着PDF版本是1.3,但我的系统上安装的Adobe reader(XI)在文件>属性中查看时显示为1.5 什么是对的 1.3还是1.5 通过阅读java中的PDF元数据,我可以获得PDF版本1.3。如何通过java程序获取PDF版本1.5?文件头中的版本可以稍后在文件中覆盖,参见: 从PDF 1.4开始,应使用文档目录词典中的版本条目(通过文件尾部中的根条目定位,如7.5.5“文件尾部”所述),如果存在,则应使用该条目代替标题中指定的版本 (第7
通过阅读java中的PDF元数据,我可以获得PDF版本1.3。如何通过java程序获取PDF版本1.5?文件头中的版本可以稍后在文件中覆盖,参见: 从PDF 1.4开始,应使用文档目录词典中的版本条目(通过文件尾部中的根条目定位,如7.5.5“文件尾部”所述),如果存在,则应使用该条目代替标题中指定的版本 (第7.5.2节文件头) 因此, 什么是对的 取决于PDF内容。如果您不确定,请共享您的PDF进行分析 关于评论中的问题 (1) 我在pdf中找不到类似1.5的内容,但记事本仍然显示版本为1.5,版本将以编码形式出现 不,但这将是一个名字,而不是一个数字: 该条目的值应为名称对象,而不是数字,因此在写入PDF文件(例如,/1.4)时,应以索利多士(2Fh)字符(/)开头 (表28–目录词典中的条目) 所以搜索“1.5”应该可以找到它。除非使用压缩对象流(PDF 1.5功能),并且最新的目录已放入此类对象流中 (2) java中是否有任何pdf api可用于读取此类版本条目 您可以使用任何允许访问其低级例程的库来读取条目,例如iText、PDFBox、PDFClown等 (3) 如果是,怎么做 在
PDF阅读器的文本中
:
reader.getCatalog().getAsName(PdfName.VERSION)
在用于文档的PDFClown中
:
document.getVersion()
从文件
检索原始标题版本时,使用:
file.getVersion()
(由Stefano Chizzolini提出的PDFClown信息)
(4) 请让我知道我应该检查什么类型的内容来检测pdf的实际版本,好吗
通常检查标题和目录就足够了
不过,可能有些程序在发现只在以后的PDF规范中使用PDF功能时,会返回所有使用功能都存在的最小PDF规范版本。在这种情况下,您必须检查所有可访问的PDF内容
这对于1.5中介绍的交叉引用和对象流尤其有意义
另外,如果我使用版本1.6编辑标题PDF header,它会将版本显示为1.6,因此这意味着Adobe dosent display属性被文档目录字典中的版本条目覆盖,它会从这两个版本中获取更高版本 这是正确的,并且在版本的规范中也提到了它 文件符合的PDF规范版本(例如,1.4),如果晚于文件头中指定的版本(见7.5.2,“文件头”)。如果页眉指定了更高版本,或者如果没有该条目,则该文件应符合页眉中指定的版本 (表28–目录词典中的条目) 关于提供的屏幕截图 OP提供了一个屏幕截图: 您可以清楚地看到所讨论的文件已线性化(在左侧可以看到线性化参数字典,在右侧可以通过“Fast Web View:Yes”确认)。在线性化参数字典之后,有第一页的交叉引用,这些交叉引用作为交叉引用流而不是交叉引用表提供 PDF 1.5中引入了交叉参考流,使用交叉参考流而不是交叉参考表的PDF甚至无法根据PDF 1.4和1.3参考进行解析 根据1.5之前的规范,我假设AdobeReader声称是1.5版本,因为这是不可解析的 我想,我将无法从带有其他API的PDF获取1.5AS版本。是这样吗 我想是的,至少现在是这样;许多库可能对用户隐藏此类详细信息(如是否使用交叉引用流或表)。但是,由于您没有提供有问题的PDF,这只是一个假设 我应该为客户提供什么解决方案?我一直在出版领域工作。在使用java开发的应用程序中,我们确实进行了验证检查:系统不得允许PDF版本1.3及之前的版本 这一要求尚未明确界定。什么是PDF 1.3版及之前的版本
- 它是一个声称为1.3或之前版本的PDF文件吗 作为特例,PDF声明不同版本的情况如何?例如,标题和目录中的不同条目,或不同增量更新中的不同条目。如果其中一个不同的条目是1.3或之前的,那么这样的PDF是1.3或之前的版本吗?或者仅当所有值均为1.3或之前?或者最新目录版本条目是否需要为1.3或更高版本
- 它是一个PDF文件,被选定的指标程序识别为1.3还是之前的版本(例如,固定版本的Adobe Reader)
- 根据PDF参考1.3或之前的版本,该PDF是否有效
- 或者,根据任何PDF参考1.4及其后版本的规定,该PDF是无效的
gs -o tempPdfFilePath -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 pdfFilePath && mv tempPdfFilePath pdfFilePath