我需要创建Open以及易于阅读的“带有源内容的 PDF”(也称为 PDF Hybrid),作者:software tool like Prince or PDFreactor ...这个DocumentFoundation's FAQ explain what it is a PDF Hybrid ,但没有说明使用什么标准:
-
ISO 19005-3 的
PDF/A-3
?- 其他(最简单的?)ISO 19005 功能?
- ISO 32000的一些东西? (类似于embedded files?)
检测已知混合 PDF 文件的标准将是一个很好的替代方法...但有人说它是 impossible to detect the standard用于 PDF Hybrid 文件。
最佳答案
首先,这个混合 PDF 似乎没有在独立标准中指定,即没有相应的 ISO/ETSI/ANSI/... 标准它。
话虽如此,它显然是 LibreOffice PDF 导出的一个突出功能:
(来自 LibreOffice Writer FAQ on hybrid PDFs )
检查这样的文件(例如 this one ),我们会发现 PDF 预告片中有其他条目:
...
trailer
<</Size 128/Root 126 0 R
/Info 127 0 R
/ID [ <518EBB4C2FE2F6B638478335A7ED9CA4>
<518EBB4C2FE2F6B638478335A7ED9CA4> ]
/DocChecksum /7B00A6EE0349EB2EA1DFB5ECC5899A7C
/AdditionalStreams [/application#2Fvnd#2Eoasis#2Eopendocument#2Etext 66 0 R
]
>>
startxref
291605
%%EOF
并且对象 66 中引用的附加流确实包含源 OpenOffice 文档。
显然,支持这些混合 PDF 文件的应用程序会检查 AdditionalStreams 预告片条目的值,以及它们是否知道处理给定的文档类型 (/application# 2Fvnd#2Eoasis#2Eopendocument#2Etext
此处对应于 application/vnd.oasis.opendocument.text),它们提供了一种提取嵌入文档并打开它进行编辑的方法。
注意:除非我忽略了某些 ISO 规范,否则严格来说,PDF 规范 ISO 32000 禁止这些额外条目:在预告片中可能只有带有键的条目这些名称要么是在 ISO 规范中为预告片定义的,要么是任何二级名称。 AdditionalStreams 和 DocChecksum 都不是 ISO 指定的或二级的。因此,严格来说,这些混合 PDF 是无效的 PDF。
关于pdf - "hybrid PDF file"使用的标准是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67358370/