Zuletzt aktualisiert: 29 Jan, 2025

In diesem Artikel führen wir Sie durch das Arbeiten mit PDF-Dateien mithilfe von Python. Wir verwenden hierfür die pypdf Bibliothek.
Mit der pypdf-Bibliothek zeigen wir, wie man die folgenden Operationen in Python durchführt:
- Extrahieren von Text aus PDFs
- Drehen von PDF-Seiten
- Zusammenführen mehrerer PDFs
- Teilen von PDFs in separate Dateien
- Hinzufügen von Wasserzeichen zu PDF-Seiten
Hinweis: Dieser Artikel enthält viele wertvolle Informationen, daher können Sie jederzeit direkt zu den für Sie interessantesten Abschnitten springen! Der Inhalt ist so strukturiert, dass er eine einfache Navigation ermöglicht, sodass Sie sich schnell auf das für Sie Relevanteste konzentrieren können.

Beispielcodes
Sie können alle im Artikel verwendeten Beispielcodes unter folgendem Link herunterladen. Es beinhaltet den Code, Eingabedateien und Ausgabedateien.
pypdf installieren
Um pypdf zu installieren, führen Sie einfach den folgenden Befehl in Ihrem Terminal oder in der Kommandozeile aus:
pip install pypdf
Hinweis: Der obige Befehl ist case-sensitive.
1. Text aus einer PDF-Datei mit Python extrahieren
Codeerklärung
1. Erstellen eines PDF-Lesers
reader = PdfReader(pdf_file)
PdfReader(pdf_file)
lädt die PDF-Datei in ein Leserobjekt.- Dieses Objekt ermöglicht den Zugriff auf die Seiten und deren Inhalte.
2. Durchlaufen der Seiten
for page_number, page in enumerate(reader.pages, start=1):
reader.pages
gibt eine Liste der Seiten im PDF zurück.enumerate(..., start=1)
weist eine Seitennummer ab 1 zu.
3. Ausdruck des extrahierten Textes
print(f"Seite {page_number}:")
print(page.extract_text())
print("-" * 50) # Separator für bessere Lesbarkeit
page.extract_text()
extrahiert den Textinhalt der aktuellen Seite.- Das Skript druckt den extrahierten Text zusammen mit der Seitennummer aus.
"-" * 50
druckt eine Trennlinie (--------------------------------------------------
) für bessere Lesbarkeit.
Eingabepdf-Datei, die im Code verwendet wird
- Eingabedatei: Download-Link
Ausgabe des Codes
2. PDF-Seiten mit Python drehen
Code-Erklärung
Der Code dreht im Wesentlichen die erste Seite um 90° im Uhrzeigersinn und speichert das modifizierte PDF, ohne andere Seiten zu beeinflussen.
1. Import der benötigten Klassen
from pypdf import PdfReader, PdfWriter
PdfReader
: Liest das Eingabepdf.PdfWriter
: Erstellt ein neues PDF mit den Modifikationen.
2. Eingangs- und Ausgangsdateipfade definieren
input_pdf = "pdf-to-rotate/input.pdf"
output_pdf = "pdf-to-rotate/rotated_output.pdf"
- Das Skript liest aus
input.pdf
und speichert die modifizierte Datei alsrotated_output.pdf
.
3. Lesen der PDF und Erstellen eines Writer-Objekts
reader = PdfReader(input_pdf)
writer = PdfWriter()
reader
lädt die bestehende PDF.writer
wird verwendet, um die modifizierten Seiten zu speichern.
4. Erste Seite um 90 Grad drehen
page = reader.pages[0]
page.rotate(90) # 90 Grad im Uhrzeigersinn drehen
writer.add_page(page)
- Extrahiert Seite 1, dreht sie um 90 Grad und fügt sie dem neuen PDF hinzu.
5. Hinzufügen der restlichen Seiten unverändert
for i in range(1, len(reader.pages)):
writer.add_page(reader.pages[i])
- Durchläuft die restlichen Seiten und fügt sie unverändert hinzu.
6. Neues PDF speichern
with open(output_pdf, "wb") as file:
writer.write(file)
- Öffnet
rotated_output.pdf
im schreib-binären Modus und speichert das neue PDF.
7. Erfolgsnachricht drucken
print(f"Rotierte Seite gespeichert in {output_pdf}")
- Zeigt eine Erfolgsnachricht an.
Eingangs-PDF verwendet im Code und seine gedrehte Ausgabe
- Eingabepdf-Datei: Download-Link
- Ausgabedatei des gedrehten PDFs: Download-Link
Screenshot
3. Zusammenführen von PDF-Dateien mit Python
Dieses Python-Skript zeigt, wie man mehrere PDF-Dateien aus einem Verzeichnis zu einem einzigen PDF mithilfe der PyPDF-Bibliothek zusammenführt.
Code-Erklärung
- Dieses Skript führt automatisch alle PDF-Dateien im angegebenen Verzeichnis (
pdfs-to-merge
) zu einer einzigen Ausgabedatei (merged_output.pdf
) zusammen. - Es stellt sicher, dass das Ausgabeverzeichnis vorhanden ist, und fügt die Seiten jeder PDF in der Reihenfolge hinzu, in der sie aufgelistet sind.
- Sie gibt die endgültige zusammengeführte Datei im Unterverzeichnis
output-dir
aus.
Code-Zusammenfassung
1. Bibliotheken importieren
import os
from pypdf import PdfReader, PdfWriter
os
: Wird verwendet, um mit dem Dateisystem zu interagieren, wie das Lesen von Verzeichnissen und das Verwenden von Datei-Pfaden.PdfReader
: Liest den Inhalt einer PDF-Datei.PdfWriter
: Erstellt und schreibt eine neue PDF-Datei.
2. Verzeichnis und Ausgabedatei definieren
directory = "pdfs-to-merge"
output_file = "output-dir/merged_output.pdf"
directory
: Gibt den Ordner an, in dem die PDF-Dateien gespeichert sind.output_file
: Definiert den Ausgabepfad und den Namen des zusammengeführten PDFs.
3. Erstellen Sie das Ausgabeverzeichnis, falls es nicht existiert
os.makedirs(os.path.join(directory, "output-dir"), exist_ok=True)
- Dies stellt sicher, dass das Ausgabeverzeichnis existiert, und falls nicht, wird es erstellt.
4. Erstellen eines PdfWriter-Objekts
writer = PdfWriter()
writer
wird verwendet, um alle Seiten der PDFs zu sammeln und zu kombinieren.
5. Iterieren über alle PDF-Dateien im Verzeichnis
for file_name in sorted(os.listdir(directory)):
if file_name.endswith(".pdf"):
file_path = os.path.join(directory, file_name)
print(f"Angehängt: {file_name}")
- Diese Schleife geht durch alle Dateien im angegebenen Verzeichnis, sucht nach Dateien mit der
.pdf
-Erweiterung. Sie verwendetsorted()
, um diese in alphabetischer Reihenfolge zu verarbeiten.
6. Lesen und Anhängen jeder PDF-Seite in den Writer
reader = PdfReader(file_path)
writer.append(reader)
- Für jede PDF liest
PdfReader
die Datei und dann werden alle Seiten dieser PDF anwriter
angehängt.
7. Schreiben des zusammengefügten PDFs an eine Ausgabedatei
output_path = os.path.join(directory, output_file)
with open(output_path, "wb") as output_pdf:
writer.write(output_pdf)
- Nachdem alle Seiten gesammelt wurden, schreibt
writer.write()
das zusammengeführte PDF an den angegebenen Ausgabepfad.
8. Erfolgsnachricht drucken
print(f"Zusammengeführtes PDF gespeichert als: {output_path}")
- Eine Erfolgsnachricht, die den Speicherort des gespeicherten zusammengeführten PDFs bestätigt, wird gedruckt.
Eingabepdf-Dateien, die im Code und der zusammengeführten PDF-Ausgabe verwendet werden
- Eingabepdf-Dateien: Download-Link
- Zusammengeführtes Ausgabepdf: Download-Link
4. Aufteilen einer PDF mit Python
Code-Erklärung
Das obige Python-Skript teilt eine PDF in einzelne Seiten mit der PyPDF-Bibliothek auf. Es stellt zuerst sicher, dass das Ausgabeverzeichnis existiert, dann liest es die Eingabepdf-Datei. Das Skript durchläuft jede Seite, erstellt ein neues PdfWriter-Objekt und speichert jede Seite als individuelle PDF-Datei. Die Ausgabedateien werden sequenziell benannt (z.B. page_1.pdf, page_2.pdf) und im output-dir
-Ordner gespeichert. Schließlich druckt es eine Bestätigungsnachricht für jede erstellte Datei und benachrichtigt, wenn der Vorgang abgeschlossen ist.
Eingabepdf und aufgeteilte Ausgabedateien
- Eingabepdf-Datei: Download-Link
- Aufgeteilte Ausgabedateien: Download-Link
5. Hinzufügen eines Wasserzeichens zu einem PDF mit Python
Sie können ein Wasserzeichen zu einem PDF mit der PyPDF-Bibliothek hinzufügen, indem Sie ein Wasserzeichen-PDF auf ein bestehendes PDF legen. Stellen Sie sicher, dass das Wasserzeichen-PDF nur eine Seite hat, damit es korrekt auf jede Seite des Haupt-PDFs angewendet wird.
Code-Erklärung
Das obige Python-Skript liest eine Eingabepdf, extrahiert ein einseitiges Wasserzeichen-PDF, legt das Wasserzeichen auf jede Seite der Eingabepdf und speichert das finale wasserzeichenbeladene PDF.
Code-Zusammenfassung
Hier ist eine kurze Erklärung zu jedem Teil
1. Erforderliche Klassen importieren
from pypdf import PdfReader, PdfWriter
PdfReader
wird verwendet, um bestehende PDFs zu lesen.PdfWriter
wird verwendet, um ein neues PDF zu erstellen und zu schreiben.
2. Datei-Pfade definieren
input_pdf = "pdf-to-watermark/input.pdf"
watermark_pdf = "pdf-to-watermark/watermark.pdf"
output_pdf = "pdf-to-watermark/output_with_watermark.pdf"
input_pdf
: Das Original-PDF, dem das Wasserzeichen hinzugefügt wird.watermark_pdf
: Ein separates einseitiges PDF, das als Wasserzeichen dient.output_pdf
: Die Ausgabedatei, die die wasserzeichenbeladenen Seiten enthalten wird.
3. PDFs lesen
reader = PdfReader(input_pdf)
watermark = PdfReader(watermark_pdf)
reader
: Liest die Eingabepdf.watermark
: Liest die Wasserzeichen-PDF.
4. Erstellen eines Writer-Objekts
writer = PdfWriter()
- Dies wird verwendet, um das finale wasserzeichenbeladene PDF zu erstellen.
5. Wasserzeichenseite extrahieren
watermark_page = watermark.pages[0]
- Geht davon aus, dass die Wasserzeichen-PDF nur eine Seite hat, die auf alle Seiten gelegt wird.
6. Iterieren über Eingabepdf-Seiten & Überlagern des Wasserzeichens
for page in reader.pages:
# Mischen das Wasserzeichen mit der aktuellen Seite
page.merge_page(watermark_page)
# Hinzufügen der gemischten Seite zum Writer
writer.add_page(page)
- Durchläuft jede Seite von
input_pdf
. merge_page(watermark_page)
überlagert das Wasserzeichen über die aktuelle Seite.- Fügt die modifizierte Seite dem
writer
hinzu.
7. Wasserzeichenbefrachtetes PDF speichern
with open(output_pdf, "wb") as output_file:
writer.write(output_file)
- Schreibt die modifizierten Seiten in eine neue PDF-Datei.
8. Bestätigungsnachricht drucken
print(f"Wasserzeichen PDF gespeichert als: {output_pdf}")
- Druckt den Ausgabepfad zur Bestätigung.
Eingabepdf, Wasserzeichen-PDF und Ausgabepdf mit Wasserzeichen
- Eingabepdf-Datei: Download-Link
- Wasserzeichen-PDF-Datei: Download-Link
- Ausgabepdf-Datei mit Wasserzeichen: Download-Link
Screenshot
Fazit
In diesem Leitfaden haben wir grundlegende PDF-Operationen in Python untersucht, einschließlich des Extrahierens von Text, des Drehens von Seiten, des Zusammenführens, Aufteilens und Hinzufügens von Wasserzeichen. Mit diesen Fähigkeiten können Sie nun Ihren eigenen PDF-Manager erstellen und verschiedene PDF-Aufgaben effizient automatisieren.