1. Products
  2.   Metadata
  3.   Python
  4.   PyMuPDF

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

GitHub Stats

Name: PyMuPDF
Language: 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.

Similar Products

 Romanian