付録2:埋め込みファイルに関する考慮事項#
この章では、PyMuPDFにおける埋め込みファイルのサポートに関する背景情報を提供します。
一般#
バージョン1.4から、PDFはPDFドキュメントファイルの一部として任意のファイルを埋め込むことができるようになりました(「7.11.4 埋め込みファイルストリーム」章を参照、 Adobe PDFリファレンス リファレンスの103ページ)。
多くの側面で、これはZIPファイルやMS WindowsのOLE技術でも見られる概念に類似しています。ただし、PDFの埋め込みファイルはZIP形式とは異なり、ディレクトリ構造をサポート しません 。埋め込みファイル自体もさらに埋め込みファイルを含むことができます。
このコンセプトの利点は、埋め込みファイルがPDFの枠組みに含まれ、その権限/パスワード保護および整合性の側面を活用できることです。PDFが参照するデータや依存する可能性があるデータはすべて、PDFにまとめて1つの一貫した情報ユニットを形成することができます。
埋め込みファイルに加えて、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()
です。