
PyMuPDF
Nyílt forráskódú Python Library a PDF metaadatok kezeléséhez
Próbálja ki a PyMuPDF-et, az ingyenes és nyílt forráskódú Python könyvtárat a PDF-dokumentumok metaadatainak eléréséhez és módosításához.
Mi az a PyMuPDF?
A PyMuPDF, más néven Fitz, egy nyílt forráskódú Python-könyvtár, amely számos funkciót kínál, például PDF-ek elemzését, PDF-ek felosztása és egyesítése stb., de ezen az oldalon csak arról lesz szó, hogy a Python-fejlesztők hogyan használhatják a PyMuPDF könyvtárat a PDF-metaadatokkal kapcsolatos feladatok kezelésére, mint például:
- PDF-metaadatok olvasása: A PyMuPDF támogatja a PDF-dokumentumok metaadatainak elérését, amelyek olyan információkat tartalmaznak, mint a szerző, cím, tárgy és létrehozás dátuma stb.
- PDF-metaadatok módosítása: A könyvtár lehetővé teszi a PDF-dokumentumok metaadatainak módosítását is.
- XML-metaadatok olvasása: A PDF-dokumentumok XML-metaadatokat is tartalmaznak, amelyek nem korlátozódnak a szabványos dokumentumtulajdonságokra, például szerzőre, címre stb., és további metaadatokat is tartalmazhatnak. A PyMuPDF segítségével a fejlesztők is elolvashatják.
- XML-metaadatok módosítása: A fejlesztők a PyMuPDF-könyvtár használatával is módosíthatják a PDF-fájlok XML-metaadatait.
GitHub statisztika
Név: PyMuPDFNyelv: Python
Csillagok: 6.9K
Villák: 584
Engedély: GNU Affero General Public License v3.0
Az adattár legutóbbi frissítése: 2025-04-05
A PyMuPDF használatának első lépései
A PyMuPDF telepítéséhez és használatához a Python 3.8.0-s vagy újabb verziója szükséges. Tehát először telepítse a Pythont, majd az alábbi parancsok segítségével telepítse a PyMuPDF-et a gépére a pip és virtuális környezet a>.
Linux
python -m venv pymupdf-venv
. pymupdf-venv/bin/activate
pip install pymupdf
MacOS
python -m venv pymupdf-venv
. pymupdf-venv/bin/activate
pip install pymupdf
Windows
python -m venv pymupdf-venv
.\pymupdf-venv\Scripts\activate
pip install pymupdf
Olvassa el a PDF metaadatokat
A PDF metaadatait a PyMuPDF könyvtár metaadat tagjával olvashatjuk, amely a dokumentum teljes metaadattartalmát tartalmazza. Az alábbi kódrészlet bemutatja, hogyan szerezheti be a PDF metaadatait a metaadat tagtól:
# Import PyMuPDF library | |
import fitz | |
# Import pprint module for pretty printing | |
from pprint import pprint | |
# Open the PDF file using PyMuPDF | |
doc = fitz.open('doc.pdf') | |
# Pretty print the metadata of the opened PDF | |
pprint(doc.metadata) | |
# Close the PDF document to release resources | |
doc.close() |
Kimenet
Az alábbi képernyőkép a PyMuPDF segítségével PDF-ből letöltött metaadatokat mutatja:
PDF-metaadatok szerkesztése
A PDF-ek metaadatait a PyMuPDF könyvtár használatával szerkeszthetjük úgy, hogy a módosítani kívánt mezőket és azok új értékeit tartalmazó szótárt átadunk a set_metadata metódusnak, ahogy az alábbi kódrészletben látható:
# Import PyMuPDF library | |
import fitz | |
# Open the PDF file | |
doc = fitz.open('documentprocessing.pdf') | |
# Define new metadata | |
new_metadata = { | |
'author': 'Document Processing', | |
'title': 'Test Document', | |
'subject': 'Test document to review document processing libraries' | |
} | |
# Set the new metadata in the document | |
doc.set_metadata(new_metadata) | |
# Save the document with the changes | |
doc.save("doc.pdf") | |
# Close the document to release resources | |
doc.close() |
Olvassa el a PDF-ek XML-metaadatait
A PyMuPDF könyvtár segítségével lekérhetjük a PDF XML metaadatait. A get_xml_metadata metódust használjuk, amely a teljes XML-metaadatot adja vissza, az alábbi kódrészlet szerint:
# Import the PyMuPDF module | |
import fitz | |
# Open the PDF file | |
doc = fitz.open("data.pdf") | |
# Print the XML metadata of the PDF document | |
print(doc.get_xml_metadata()) | |
# Close the PDF document | |
doc.close() |
Kimenet
Az alábbi képernyőkép a PyMuPDF segítségével PDF-ből lekért XML-metaadatokat mutatja:
A PDF-ek XML-metaadatainak módosítása
A PyMuPDF könyvtár set_xml_metadata metódusával beállíthatjuk vagy módosíthatjuk a PDF XML metaadatait. Ez nem olyan egyszerű, mint a dokumentumszintű metaadatok cseréje, mert a set_xml_metadata bármilyen karakterláncot elfogad, és a teljes XML-metaadatokat a neki átadott karakterláncra cseréli.
A metaadat-információk nem szándékos törlésének elkerülése érdekében először lekérjük a teljes XML-metaadatot karakterláncként a get_xml_metadata használatával, majd a replace metódussal lecseréljük a kívánt karakterláncot. Végül átadjuk a teljes XML-t módosított mezőkkel a set_xml_metadata metódusnak, amely megváltoztatja a PDF teljes XML-metaadatát. A részletekért ellenőrizze az alábbi kódrészletet:
# Import the PyMuPDF library | |
import fitz | |
# Open the PDF file | |
doc = fitz.open("documentprocessing.pdf") | |
# Get the current metadata as XML | |
xml_metadata = doc.get_xml_metadata() | |
# Update the creator field in the XML metadata | |
updated_xml_metadata = xml_metadata.replace( | |
'<rdf:li>Document</rdf:li>', | |
f'<rdf:li>Document Processing</rdf:li>' | |
) | |
# Set the updated XML metadata in the PDF document | |
doc.set_xml_metadata(updated_xml_metadata) | |
# Save the changes to a new PDF file | |
doc.save("data.pdf") | |
# Close the PDF document | |
doc.close() |
Következtetés
Összefoglalva, a PyMuPDF nagyszerű eszköz a metaadatok kezelésével kapcsolatos feladatokhoz. Könnyedén lekérhetjük és módosíthatjuk a PDF-ek metaadat-információit. Egy figyelemre méltó gyengeség azonban a set_xml_metadata metódusban rejlik. Ez a metódus elfogad minden neki átadott karakterláncot, és felülírja vele a korábbi XML-t, ami véletlen információvesztést okozhat a probléma elkerülése érdekében.
Hasonló Termékek
- hachoir | Nyílt forráskódú Python-könyvtár a dokumentumok metaadataihoz
- Mutagen Python Library – Az audio metaadatok könnyed kezelése
- OpenPyXL API – Az Excel metaadatainak könnyed kezelése
- pdf-lib a JavaScripthez | PDF-metaadatok kezelése egyszerűen
- PikePDF Python Library - Könnyű PDF-kezelés és biztonság