Skip to content
Anleitungen
Python
PyPDF2: The Ultimate Python Library for PDF Manipulation

PyPDF2: Die ultimative Python-Bibliothek zur PDF-Manipulation

PyPDF2 ist eine leistungsstarke, kostenlose und Open-Source-Bibliothek, die für die Manipulation von PDFs in Python entwickelt wurde. Es ist ein vielseitiges Werkzeug, mit dem Sie PDF-Dateien problemlos teilen, zusammenführen, zuschneiden, transformieren, verschlüsseln und entschlüsseln können. PyPDF2 unterstützt die PDF-Versionen 1.4 bis 1.7 und erfordert keine externen Abhängigkeiten außer der Python-Standardbibliothek, was es zu einer zugänglichen und bequemen Wahl für Python-Entwickler macht, die mit PDFs arbeiten.

Diese Bibliothek ist nicht nur robust, sondern auch sicher und bietet eine Reihe von Funktionen, die die Integrität und Vertraulichkeit Ihrer PDF-Dateien gewährleisten. Von der Hinzufügung von Passwörtern zu PDFs bis hin zum Abrufen von Text und Metadaten aus ihnen bietet PyPDF2 eine umfassende Auswahl an Tools zur PDF-Manipulation. In diesem Artikel werden wir auf die Fähigkeiten von PyPDF2 eingehen und detaillierte Erklärungen, Definitionen und Beispiele bereitstellen, um Ihnen zu helfen, das Beste aus dieser Bibliothek herauszuholen.

Möchten Sie schnell Visualisierungen von Python-Pandas-Datenrahmen ohne Code erstellen?

PyGWalker ist eine Python-Bibliothek für explorative Datenanalyse mit Visualisierung. PyGWalker (opens in a new tab) kann Ihren Jupyter Notebook-Datenanalyse- und Datenvisualisierungsworkflow vereinfachen, indem es Ihren Pandas-Datenrahmen (und Polars-Datenrahmen) in eine Tableau-ähnliche Benutzeroberfläche für die visuelle Exploration verwandelt.

PyGWalker zur Datenvisualisierung (opens in a new tab)

Was ist PyPDF2?

PyPDF2 ist eine reine Python-Bibliothek, mit der Sie Seiten von PDF-Dateien teilen, zusammenführen, zuschneiden und transformieren können. Sie können auch benutzerdefinierte Daten, Ansichtsoptionen und Passwörter zu PDF-Dateien hinzufügen. PyPDF2 kann auch Text und Metadaten aus PDFs extrahieren, was es zu einem umfassenden Werkzeug zur PDF-Manipulation macht.

Die Bibliothek ist Open Source, was bedeutet, dass sie frei verfügbar ist und von jedem verwendet, geändert und verbreitet werden kann. Dies macht sie zu einer beliebten Wahl unter Entwicklern, die mit PDFs in Python arbeiten müssen. PyPDF2 ist auch plattformunabhängig, sodass Sie es unabhängig davon verwenden können, ob Sie auf einem Windows-, Mac- oder Linux-Computer arbeiten.

Installation und Verwendung von PyPDF2

Die Installation von PyPDF2 ist einfach und kann mit pip, dem Paketinstaller für Python, durchgeführt werden. PyPDF2 erfordert Python 3.6 oder höher. So können Sie PyPDF2 mit pip installieren:

pip install PyPDF2

Sie können PyPDF2 auch mit Anaconda installieren, einer beliebten Python-Distribution für Datenwissenschaft und maschinelles Lernen. So geht's:

pip install git+https://github.com/py-pdf/PyPDF2.git

Sobald installiert, können Sie die PyPDF2-Bibliothek in Ihr Python-Skript importieren:

import PyPDF2

Um die Version von PyPDF2 zu überprüfen, die Sie verwenden, können Sie das __version__-Attribut verwenden:

PyPDF2.__version__

Arbeiten mit PDFs mit PyPDF2

Sobald Sie PyPDF2 installiert haben, können Sie mit PDFs arbeiten. Lassen Sie uns einige häufige Operationen durchgehen, die Sie durchführen müssen.

Lesen eines PDFs

Um ein PDF zu lesen, müssen Sie die Datei im Lese-Binärmodus ('rb') öffnen und dann ein PdfFileReader-Objekt erstellen:

inputFile = "Pfad_zu_Ihrer_PDF_Datei.pdf"
pdf = open(inputFile, "rb")
pdf_reader = PyPDF2.PdfFileReader(pdf)

Sie können die Anzahl der Seiten im PDF mit dem Attribut numPages überprüfen:

totalPages = pdf_reader.numPages
print(totalPages)

Extrahieren von Text aus einem PDF

Um Text aus einem PDF zu extrahieren, können Sie die extractText()-Methode der Klasse PageObject verwenden. Zuerst müssen Sie ein PageObject erhalten, das eine bestimmte Seite im PDF repräsentiert:

page = pdf_reader.getPage(0)  ## Erhalten Sie die erste Seite

Dann können Sie den Text von dieser Seite extrahieren:

print(page.extractText())

Dadurch wird der Textinhalt der ersten Seite des PDFs in der Konsole ausgegeben. Beachten Sie, dass extractText() je nach Komplexität des PDFs und der Codierung des Texts möglicherweise nicht immer perfekt funktioniert.

Aufteilen von PDF-Seiten

Eine der leistungsstarken Funktionen von PyPDF2 ist die Möglichkeit, PDF-Seiten zu teilen. Dies kann mit der getPage()-Methode des PdfFileReader-Objekts erreicht werden, das eine Seite anhand ihrer Nummer abruft. Hier ist ein Beispiel, wie man die erste Seite aus einem PDF teilt:

## Öffnen Sie das PDF
with open('Pfad_zu_Ihrer_PDF_Datei.pdf', 'rb') as file:
    reader = PyPDF2.PdfFileReader(file)
    writer = PyPDF2.PdfFileWriter()
 
    ## Erhalten Sie die erste Seite
    first_page = reader.getPage(0)
 
    ## Fügen Sie die Seite dem PdfFileWriter-Objekt hinzu
    writer.addPage(first_page)
 
    ## Schreiben Sie die Seite in eine neue Datei
    with open('ausgabe.pdf', 'wb') as output_pdf:
        writer.write(output_pdf)

In diesem Beispiel ist ausgabe.pdf eine neue PDF-Datei, die nur die erste Seite des ursprünglichen PDFs enthält.

Zusammenführen von PDFs

PyPDF2 ermöglicht es Ihnen auch, mehrere PDFs zu einer Datei zusammenzufügen. Dies kann mit der Klasse PdfFileMerger erfolgen. Hier ist ein Beispiel:

merger = PyPDF2.PdfFileMerger()
 
## Liste der zu verschmelzenden PDFs
pdfs = ['datei1.pdf', 'datei2.pdf', 'datei3.pdf']
 
for pdf in pdfs:
    merger.append(pdf)
 
merger.write("zusammengefügtes.pdf")
merger.close()

In diesem Beispiel ist zusammengefügtes.pdf eine neue PDF-Datei, die alle Seiten von datei1.pdf, datei2.pdf und datei3.pdf in dieser Reihenfolge enthält.

Hinzufügen von Passwörtern zu PDFs

PyPDF2 bietet eine einfache Möglichkeit, Passwörter zu Ihren PDF-Dateien für zusätzliche Sicherheit hinzuzufügen. Dies kann mit der encrypt()-Methode des PdfFileWriter-Objekts erfolgen. Hier ist ein Beispiel:

## Öffnen Sie das PDF

Bitte geben Sie die deutsche Übersetzung für diese Markdown-Datei an. Übersetzen Sie den Inhalt von JSONldScript. Wenn es ein Frontmatter gibt, stellen Sie bitte sicher, dass Sie den Sprachparameter auch auf "de" übersetzen. Hier ist die Datei:

with open('pfad_zu_ihrer_pdf_datei.pdf', 'rb') as file:
    reader = PyPDF2.PdfFileReader(file)
    writer = PyPDF2.PdfFileWriter()

    ## Kopiere alle Seiten von der Original-PDF in die Neue
    for pageNum in range(reader.numPages):
        page = reader.getPage(pageNum)
        writer.addPage(page)

    ## Verschlüssele die neue PDF
    writer.encrypt('dein_passwort')

    ## Schreibe die verschlüsselte PDF in eine neue Datei
    with open('verschlüsselte.pdf', 'wb') as output_pdf:
        writer.write(output_pdf)

In diesem Beispiel ist verschlüsselte.pdf eine neue PDF-Datei, die eine Kopie der Original-PDF ist, jedoch mit dem Passwort "dein_passwort" verschlüsselt.

Konvertierung von PDFs in Bilder

Obwohl PyPDF2 PDFs nicht direkt in Bilder umwandeln kann, kann es in Kombination mit anderen Bibliotheken wie PDF2Image verwendet werden, um dies zu erreichen. Hier ist ein Beispiel:

from pdf2image import convert_from_path
 
## Konvertiere das PDF in eine Liste von Bildern
images = convert_from_path('pfad_zu_ihrer_pdf_datei.pdf')
 
## Speichere die Bilder in separaten Dateien
for i, image in enumerate(images):
    image.save(f'ausgabe{i}.png', 'PNG')

In diesem Beispiel wird jede Seite des PDFs in ein PNG-Bild konvertiert und in einer separaten Datei gespeichert.

FAQs

Welche Versionen von PDF unterstützt PyPDF2?

PyPDF2 unterstützt PDF-Versionen von 1.4 bis 1.7. Dies umfasst eine Vielzahl von PDF-Dateien und macht PyPDF2 zu einer vielseitigen Wahl für die PDF-Manipulation in Python.

Hat PyPDF2 Abhängigkeiten?

Nein, PyPDF2 hat keine Abhängigkeiten außer der Python-Standardbibliothek. Dies macht die Installation und Verwendung auf jedem System, das Python installiert hat, einfach.

Welche Python-Version wird zum Ausführen von PyPDF2 benötigt?

PyPDF2 erfordert Python 3.6 oder höher. Dadurch wird die Kompatibilität mit modernen Python-Funktionen sichergestellt und die Gesamtleistung und Sicherheit der Bibliothek verbessert.