pdf - "hybrid PDF file"使用的标准是什么?

标签 pdf hybrid

我需要创建Open以及易于阅读的“带有源内容的 PDF”(也称为 PDF Hybrid),作者:software tool like Prince or PDFreactor ...这个DocumentFoundation's FAQ explain what it is a PDF Hybrid ,但没有说明使用什么标准:


检测已知混合 PDF 文件的标准将是一个很好的替代方法...但有人说它是 impossible to detect the standard用于 PDF Hybrid 文件。

最佳答案

首先,这个混合 PDF 似乎没有在独立标准中指定,即没有相应的 ISO/ETSI/ANSI/... 标准它。

话虽如此,它显然是 LibreOffice PDF 导出的一个突出功能:

LibreOffice PDF export options

(来自 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 规范中为预告片定义的,要么是任何二级名称。 AdditionalStreamsDocChecksum 都不是 ISO 指定的或二级的。因此,严格来说,这些混合 PDF 是无效的 PDF。

关于pdf - "hybrid PDF file"使用的标准是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67358370/

相关文章:

ms-access - PDF 转 MS Access

java - 应用程序/pdf 数据开始下载而不是查看

java - 使用 PDFBox 添加页面不起作用

amazon-ec2 - 在 aws ec2 和我的本地 openstack 实例之间创建混合云

c# - 在 iText 7 .NET/C# 中为 PDF 创建图像表单域

c++ - 使用 PoDoFo 构建 PdfXObject

html - 点击 <a> 元素时如何禁用灰色 mask ?

c++ - 在 Fortran 程序中使用 Boost 图形库 (BGL)

oauth - 身份服务器 4 中的授权流程 : Unsupported Grant Type

IOS 模拟器用户交互不起作用?