Wie man Fitz (PyMuPDF) für die PDF-Verarbeitung in Python verwendet
Takashi Yamamoto
Infrastructure Engineer · Leapcell

Fitz, auch bekannt als PyMuPDF, ist eine leistungsstarke Python-Bibliothek für die Arbeit mit PDF-Dokumenten. Sie ermöglicht es Ihnen, PDF-Dateien einfach zu öffnen, zu bearbeiten und Informationen daraus zu extrahieren. In diesem Artikel werden wir untersuchen, wie man Fitz in Python verwendet, komplett mit praktischen Beispielen.
Key Takeaways
- Fitz (PyMuPDF) vereinfacht die PDF-Manipulation in Python, einschließlich Textextraktion, Zusammenführung und Bearbeitung.
- Die Bibliothek bietet intuitive Methoden zum Extrahieren von Bildern und Metadaten aus PDF-Dokumenten.
- Fitz ermöglicht die Modifikation und Erstellung von PDFs mit minimalem Code.
Installation
Stellen Sie vor der Verwendung von Fitz sicher, dass die PyMuPDF-Bibliothek installiert ist:
pip install pymupdf
Importieren der Bibliothek
Beginnen Sie mit dem Importieren der Bibliothek:
import fitz # PyMuPDF
Öffnen eines PDF-Dokuments
Um eine PDF-Datei zu öffnen, verwenden Sie die Funktion fitz.open()
:
pdf_document = fitz.open('example.pdf')
Abrufen von Dokumentinformationen
Sie können verschiedene Metadaten aus dem Dokument abrufen:
# Anzahl der Seiten num_pages = pdf_document.page_count print(f'Das Dokument hat {num_pages} Seiten.') # Metadaten metadata = pdf_document.metadata print('Metadaten:', metadata)
Extrahieren von Text aus Seiten
So extrahieren Sie Text von einer bestimmten Seite:
# Laden einer bestimmten Seite (0-basierter Index) page_number = 0 page = pdf_document.load_page(page_number) # Text extrahieren text = page.get_text() print(f'Text auf Seite {page_number + 1}:\n{text}')
So extrahieren Sie Text von allen Seiten:
for page_num in range(pdf_document.page_count): page = pdf_document.load_page(page_num) text = page.get_text() print(f'Text auf Seite {page_num + 1}:\n{text}')
Extrahieren von Bildern aus Seiten
So extrahieren Sie Bilder von einer bestimmten Seite:
# Laden der Seite page = pdf_document.load_page(page_number) # Abrufen von Bildern auf der Seite image_list = page.get_images(full=True) print(f'Es wurden {len(image_list)} Bilder auf Seite {page_number + 1} gefunden.') # Verarbeiten jedes Bildes for img_index, img in enumerate(image_list, start=1): xref = img[0] base_image = pdf_document.extract_image(xref) image_bytes = base_image["image"] # Speichern des Bildes with open(f'image_page{page_number + 1}_{img_index}.png', 'wb') as image_file: image_file.write(image_bytes)
Hinzufügen von Text zu einer Seite
So fügen Sie Text zu einer bestimmten Seite hinzu:
# Laden der Seite page = pdf_document.load_page(page_number) # Definieren des Textes und der Position text = "Hallo, PyMuPDF!" position = fitz.Point(100, 100) # Hinzufügen von Text zur Seite page.insert_text(position, text, fontsize=12, color=(0, 0, 0)) # Speichern der Änderungen pdf_document.save('modified_example.pdf')
Zusammenführen von PDF-Dokumenten
So führen Sie zwei PDF-Dokumente zusammen:
# Öffnen der Dokumente pdf1 = fitz.open('document1.pdf') pdf2 = fitz.open('document2.pdf') # Einfügen von pdf2 in pdf1 pdf1.insert_pdf(pdf2) # Speichern des zusammengeführten Dokuments pdf1.save('merged_document.pdf')
Aufteilen eines PDF-Dokuments
So extrahieren Sie bestimmte Seiten in ein neues PDF:
# Öffnen des Originaldokuments pdf_document = fitz.open('example.pdf') # Erstellen eines neuen PDFs für die extrahierten Seiten new_pdf = fitz.open() # Definieren des Seitenbereichs, der extrahiert werden soll (z. B. Seiten 2 bis 4) start_page = 1 # 0-basierter Index end_page = 4 # exklusiv # Einfügen der angegebenen Seiten in das neue PDF new_pdf.insert_pdf(pdf_document, from_page=start_page, to_page=end_page) # Speichern des neuen PDFs new_pdf.save('extracted_pages.pdf')
Schließen des Dokuments
Schließen Sie nach Abschluss der Operationen am PDF das Dokument, um Ressourcen freizugeben:
pdf_document.close()
FAQs
Schleifen Sie durch die Seiten mit load_page()
und rufen Sie get_text()
auf jeder Seite auf.
Ja, verwenden Sie insert_pdf()
, um Seiten von einem PDF in ein anderes zusammenzuführen.
Ja, verwenden Sie insert_text()
oder Anmerkungsmethoden, um das Dokument zu ändern.
Fazit
Fitz (PyMuPDF) bietet eine umfassende Reihe von Tools für die PDF-Manipulation in Python und ist somit eine wertvolle Ressource für Aufgaben wie Textextraktion, Inhaltsänderung und Dokumentzusammenführung oder -teilung. Weitere detaillierte Informationen und erweiterte Funktionen finden Sie in der PyMuPDF-Dokumentation.
Wir sind Leapcell, Ihre erste Wahl für die Bereitstellung von Python-Projekten in der Cloud.
Leapcell ist die Serverlose Plattform der nächsten Generation für Webhosting, Asynchrone Aufgaben und Redis:
Mehrsprachige Unterstützung
- Entwickeln Sie mit Node.js, Python, Go oder Rust.
Stellen Sie unbegrenzt Projekte kostenlos bereit
- Zahlen Sie nur für die Nutzung – keine Anfragen, keine Gebühren.
Unschlagbare Kosteneffizienz
- Pay-as-you-go ohne Leerlaufgebühren.
- Beispiel: 25 $ unterstützen 6,94 Millionen Anfragen bei einer durchschnittlichen Antwortzeit von 60 ms.
Optimierte Entwicklererfahrung
- Intuitive Benutzeroberfläche für mühelose Einrichtung.
- Vollautomatische CI/CD-Pipelines und GitOps-Integration.
- Echtzeitmetriken und -protokollierung für umsetzbare Erkenntnisse.
Mühelose Skalierbarkeit und hohe Leistung
- Automatische Skalierung zur einfachen Bewältigung hoher Parallelität.
- Keine betrieblichen Gemeinkosten – konzentrieren Sie sich einfach auf das Bauen.
Erfahren Sie mehr in der Dokumentation!
Folgen Sie uns auf X: @LeapcellHQ