附录 2:嵌入文件的考虑#

本章提供了有关PyMuPDF中嵌入文件支持的一些背景信息。

一般#

从版本 1.4 开始,PDF 支持将任意文件嵌入作为 PDF 文档文件的一部分(“嵌入文件流”)(见章节“7.11.4 嵌入文件流”,Adobe PDF 参考第103页)。

在许多方面,这与ZIP文件或MS Windows中的OLE技术中的概念是相当的。然而,PDF嵌入文件确实支持像ZIP格式那样的目录结构。一个嵌入文件本身可以包含嵌入文件。

这个概念的优点在于嵌入的文件在PDF的保护下,受益于其权限/密码保护和完整性方面:所有PDF可能引用或依赖的数据都可以打包到其中,从而形成一个单一、一致的信息单元。

除了嵌入文件外,PDF 1.7 还为其支持范围添加了 集合。这是一种存储和呈现嵌入文件的元信息(即任意和可扩展属性)的高级方式。

MuPDF 支持#

在MuPDF版本1.11中初步支持集合(投资组合)和/EmbeddedFiles后,该支持在版本1.15中又被弃用。

因此,cli 工具 mutool 不再提供对嵌入文件的访问。

PyMuPDF – 在其版本1.11.0中实现了/EmbeddedFiles API,因此自版本1.16.0开始被迫改变方向(我们从未发布与MuPDF v1.15.x兼容的PyMuPDF)。

我们现在维护自己的代码基础,支持嵌入文件。此代码仅使用基本的MuPDF字典和数组函数。

PyMuPDF 支持#

我们继续支持与嵌入文件相关的完整旧API,仅进行了一些小的、外观上的更改。

甚至还有一个新功能,它提供了一个列表,其中列出了嵌入数据在 PDF 中注册的所有名称,Document.embfile_names()


本软件按原样提供,不作任何明示或暗示的担保。该软件根据许可证分发,除非按照该许可证的条款明确授权,否则不得复制、修改或分发。有关许可信息,请参阅artifex.com或联系Artifex Software Inc.,地址:39 Mesa Street, Suite 108A, San Francisco CA 94129, United States以获取更多信息。