PyMuPDF
PDF メタデータを管理するためのオープンソース Python ライブラリ
PDF ドキュメントのメタデータにアクセスして変更するには、無料のオープンソース Python ライブラリである PyMuPDF を試してください。
PyMuPDFとは何ですか?
Fitz としても知られる PyMuPDF は、PDF の解析、 PDF の分割と結合などですが、このページでは、Python 開発者が PyMuPDF ライブラリを使用して次のような PDF メタデータ関連のタスクを処理する方法についてのみ説明します。
- PDF メタデータの読み取り: PyMuPDF は、作成者、タイトル、件名、作成日などの情報を含む PDF ドキュメントのメタデータへのアクセスをサポートします。
- PDF メタデータの変更: このライブラリでは、PDF ドキュメントのメタデータを変更することもできます。
- XML メタデータの読み取り: PDF ドキュメントには、作成者、タイトルなどの標準ドキュメント プロパティに限定されず、追加のメタデータを持つことができる XML メタデータも含まれています。 PyMuPDF を使用すると、開発者も PyMuPDF を読み取ることができます。
- XML メタデータの変更: 開発者は、PyMuPDF ライブラリを使用して PDF の XML メタデータを変更することもできます。
PyMuPDF の入門
PyMuPDF をインストールして使用するには、Python バージョン 3.8.0 以降が必要です。したがって、まず Python をインストールし、次に以下のコマンドを使用して pip と 仮想環境あ>。
Linux
python -m venv pymupdf-venv
. pymupdf-venv/bin/activate
pip install pymupdf
マックOS
python -m venv pymupdf-venv
. pymupdf-venv/bin/activate
pip install pymupdf
ウィンドウズ
python -m venv pymupdf-venv
.\pymupdf-venv\Scripts\activate
pip install pymupdf
PDF メタデータを読み取る
ドキュメントの完全なメタデータ コンテンツを含む PyMuPDF ライブラリのメタデータ メンバーを使用して、PDF のメタデータを読み取ることができます。以下のコード スニペットは、メタデータ メンバーから PDF のメタデータを取得する方法を示しています。
出力
以下のスクリーンショットは、PyMuPDF を使用して PDF から取得したメタデータを示しています。
PDF メタデータの編集
以下のコード スニペットに示すように、変更するフィールドとその新しい値を含む辞書をset_metadata メソッドに渡すことで、PyMuPDF ライブラリを使用して PDF のメタデータを編集できます。
PDF の XML メタデータを読み取る
PyMuPDF ライブラリを使用して PDF の XML メタデータを取得できます。以下のコード スニペットに示すように、XML メタデータ全体を返す get_xml_metadata メソッドを使用します。
出力
以下のスクリーンショットは、PyMuPDF を使用して PDF から取得した XML メタデータを示しています。
PDF の XML メタデータを変更する
PyMuPDF ライブラリのset_xml_metadata メソッドを使用して、PDF の XML メタデータを設定または変更できます。 set_xml_metadata は任意の文字列を受け入れ、完全な XML メタデータを渡された文字列で置き換えるため、ドキュメント レベルのメタデータを置き換えるほど簡単ではありません。
メタデータ情報の意図しない削除を避けるために、最初にget_xml_metadata を使用して完全な XML メタデータを文字列として取得し、次に文字列のreplace メソッドを使用して置換します。必要な情報を取得したら、最後に、変更されたフィールドを含む完全な XML を set_xml_metadata メソッドに渡します。これにより、PDF の XML メタデータ全体が変更されます。詳細については、以下のコード スニペットを確認してください。
結論
要約すると、PyMuPDF はメタデータ操作に関連するタスクに最適なツールです。 PDF のメタデータ情報を簡単に取得および変更できます。ただし、set_xml_metadata メソッドには顕著な弱点があります。このメソッドは渡された文字列を受け入れ、前の XML をその文字列で上書きします。これにより、意図しない情報の損失が発生する可能性があります。この問題を回避するには、開発者は XML メタデータを正しく変更するためのロジックを実装する必要があります。