
PyMuPDF
Biblioteca Python open source pentru a gestiona metadatele PDF
Încercați PyMuPDF, biblioteca Python gratuită și open source pentru a accesa și modifica metadatele documentelor PDF.
Ce este PyMuPDF?
PyMuPDF, cunoscut și sub numele de Fitz, este o bibliotecă Python open source care oferă multe funcții precum parsarea PDF-urilor, diviziunea și îmbinarea PDF-urilor etc., dar în această pagină vom discuta doar despre modul în care dezvoltatorii Python pot folosi biblioteca PyMuPDF pentru a gestiona sarcini legate de metadatele PDF, cum ar fi:
- Citiți metadatele PDF: PyMuPDF acceptă accesarea metadatelor documentelor PDF care conțin informații precum autor, titlu, subiect și data creării etc.
- Modificați metadatele PDF: biblioteca permite, de asemenea, modificarea metadatelor documentelor PDF.
- Citiți metadatele XML: documentele PDF conțin și metadate XML care nu se limitează la proprietățile standard ale documentului, cum ar fi autorul, titlul etc. și pot avea metadate suplimentare. Cu PyMuPDF, dezvoltatorii îl pot citi și ei.
- Modificați metadatele XML: dezvoltatorii pot modifica și metadatele XML ale fișierelor PDF utilizând biblioteca PyMuPDF.
GitHub Stats
Name: PyMuPDFLanguage: Python
Stars: 6.9K
Forks: 585
License: GNU Affero General Public License v3.0
Repository was last updated at 2025-04-09
Noțiuni introductive cu PyMuPDF
Aveți nevoie de versiunea Python 3.8.0 sau o versiune ulterioară pentru a instala și utiliza PyMuPDF. Deci, mai întâi instalați Python și apoi utilizați comenzile de mai jos pentru a instala PyMuPDF pe computer folosind pip și mediu virtual.
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
Citiți metadatele PDF
Putem citi metadatele unui PDF utilizând membrul metadatelor al bibliotecii PyMuPDF, care conține conținutul complet al metadatelor documentului. Fragmentul de cod de mai jos arată cum să obțineți metadatele unui PDF de la membrul metadate:
# 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() |
Captura de ecran de mai jos arată metadatele preluate dintr-un PDF utilizând PyMuPDF:
Editați metadatele PDF
Putem edita metadatele PDF-urilor folosind biblioteca PyMuPDF trecând un dicționar care conține câmpurile pe care dorim să le modificăm împreună cu noile lor valori la metoda set_metadata, așa cum se arată în fragmentul de cod de mai jos:
# 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() |
Citiți metadatele XML ale PDF-urilor
Putem prelua metadatele XML ale unui PDF folosind biblioteca PyMuPDF. Folosim metoda get_xml_metadata care returnează metadatele XML complete, așa cum se arată în fragmentul de cod de mai jos:
# 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() |
Captura de ecran de mai jos arată metadatele XML preluate dintr-un PDF folosind PyMuPDF:
Modificați metadatele XML ale PDF-urilor
Putem seta sau modifica metadatele XML ale unui PDF folosind metoda set_xml_metadata a bibliotecii PyMuPDF. Nu este la fel de simplu ca înlocuirea metadatelor la nivel de document, deoarece set_xml_metadata va accepta orice șir și va înlocui metadatele XML complete cu șirul care i-a fost transmis.
Pentru a evita ștergerea neintenționată a oricăror informații despre metadate, mai întâi preluăm metadatele XML complete ca șir folosind get_xml_metadata și apoi folosim metoda replace pentru a înlocui șirul dorit. în cele din urmă, transmitem întregul XML cu câmpurile modificate la metoda set_xml_metadata care modifică întreaga metadată XML a PDF-ului. Verificați fragmentul de cod de mai jos pentru detalii:
# 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() |
Concluzie
Pe scurt, PyMuPDF este un instrument excelent pentru sarcini legate de manipularea metadatelor. Putem prelua și modifica cu ușurință informațiile despre metadatele PDF-urilor. Cu toate acestea, o slăbiciune notabilă constă în metoda set_xml_metadata. Această metodă acceptă orice șir transmis și suprascrie XML-ul anterior cu acesta, ceea ce poate cauza pierderea neintenționată a informațiilor pentru a evita această problemă, dezvoltatorii sunt obligați să-și implementeze logica pentru a asigura modificări corecte în metadatele XML.