pypdf2

PYPDF2 – Python Guide to PDF Manipulation | Konfuzio

Florian Zyprian

Sind Sie es leid, PDF-Dateien manuell zu bearbeiten? Möchten Sie lernen, wie Sie PDFs mit Python bearbeiten können? Dann ist PyPDF2 genau das Richtige für Sie. Mit dieser Python-Bibliothek können Sie PDF-Dateien zusammenführen, aufteilen, verschlüsseln, entschlüsseln und vieles mehr. In diesem Tutorial werden wir die folgenden Themen behandeln:

  1. Installation von PyPDF2 und seinen Abhängigkeiten

  2. Lesen, Schreiben und Kopieren von PDF-Dateien

  3. Mehrere PDF-Dateien zu einer einzigen zusammenführen

  4. Aufteilung einer PDF-Datei in mehrere Dateien

  5. Verschlüsseln und Entschlüsseln von PDF-Dateien

  6. Extrahieren von Text und Bildern aus PDFs

  7. Hinzufügen von Wasserzeichen und Seitenzahlen zu PDFs

Außerdem vergleichen wir PyPDF2 mit anderen PDF-Bearbeitungsprogrammen und diskutieren seine Vorteile und Grenzen. Mit PyPDF2 können Sie Ihre PDF-Workflows automatisieren und Zeit für manuelle Bearbeitungen sparen. Hier erfahren Sie, wie Sie loslegen können:

Installation von PyPDF2

Um PyPDF2 zu verwenden, kann dies einfach per pip installiert werden:

  • Stellen Sie sicher, dass Sie Python 2.7 oder Python 3.x auf Ihrem System installiert haben.
  • Installieren Sie PyPDF2 mit pip: pip install PyPDF2

Lesen, Schreiben und Kopieren von PDF-Dateien

Mit PyPDF2 können Sie PDF-Dateien ganz einfach lesen, schreiben und kopieren. Hier ist ein Beispiel:

import PyPDF2

# Open the PDF file
pdf_file = open('example.pdf', 'rb')

# Read the PDF file
pdf_reader = PyPDF2.PdfFileReader(pdf_file)

# Print the number of pages
print(pdf_reader.numPages)

# Get the first page
page = pdf_reader.getPage(0)

# Extract the text from the first page
text = page.extractText()

# Print the text
print(text)

# Close the PDF file
pdf_file.close()

Mehrere PDF-Dateien zu einer einzigen zusammenführen

Wenn Sie mehrere PDF-Dateien haben, die Sie zu einer einzigen zusammenfassen möchten, ist das mit PyPDF2 ganz einfach. Hier ist ein Beispiel:

import PyPDF2

# Open the first PDF file
pdf_file1 = open('example1.pdf', 'rb')

# Open the second PDF file
pdf_file2 = open('example2.pdf', 'rb')

# Create a PDF merger
pdf_merger = PyPDF2.PdfFileMerger()

# Add the first PDF file
pdf_merger.append(pdf_file1)

# Add the second PDF file
pdf_merger.append(pdf_file2)

# Merge the PDF files
pdf_merger.write('merged.pdf')

# Close the PDF files
pdf_file1.close()
pdf_file2.close()

Aufteilung einer PDF-Datei in mehrere Dateien

Wenn Sie eine große PDF-Datei haben, die Sie in kleinere Dateien aufteilen möchten, kann Ihnen PyPDF2 helfen. Hier ist ein Beispiel:

import PyPDF2

# Open the PDF file
pdf_file = open('example.pdf', 'rb')

# Create a PDF reader
pdf_reader = PyPDF2.PdfFileReader(pdf_file)

# Get the number of pages
num_pages = pdf_reader.numPages

# Split the PDF file into multiple files
for page_num in range(num_pages):
    # Create a PDF writer
    pdf_writer = PyPDF2.PdfFileWriter()

    # Get the page
    page = pdf_reader.getPage(page_num)

    # Add the page to the PDF writer
    pdf_writer.addPage(page)

    # Create the new PDF file
    new_file_name = 'page' + str(page_num) + '.pdf'
    new_file = open(new_file_name, 'wb')

   

PyPDF2 unterstützt auch die Erstellung und Bearbeitung von PDF-Dateien. Mit PyPDF2 können Sie eine neue PDF-Datei von Grund auf erstellen oder eine bestehende Datei ändern. Sie können Text, Bilder und andere Elemente zu einer PDF-Datei hinzufügen sowie ihre Struktur, Eigenschaften und Metadaten ändern.

Eine der leistungsstärksten Funktionen von PyPDF2 ist die Fähigkeit, PDF-Dateien zusammenzuführen und zu teilen. Sie können mehrere PDFs in einer einzigen Datei zusammenführen oder ein großes PDF in mehrere kleinere aufteilen. Dies kann für die Organisation und Archivierung von Dokumenten sowie für die Erstellung von Berichten und Präsentationen nützlich sein.

Zusätzlich zu diesen Kernfunktionen bietet PyPDF2 auch eine Reihe von Werkzeugen und Dienstprogrammen für die Arbeit mit PDF-Dateien. Diese umfassen:

Verschlüsselung und Entschlüsselung von PDFs

Mit PyPDF2 können Sie PDF-Dateien verschlüsseln und entschlüsseln, wobei sowohl Benutzer- als auch Eigentümerpasswörter unterstützt werden. Hier erfahren Sie, wie Sie eine PDF-Datei mit PyPDF2 verschlüsseln können:

import PyPDF2

pdf_file = open('input.pdf', 'rb')
pdf_reader = PyPDF2.PdfFileReader(pdf_file)

pdf_writer = PyPDF2.PdfFileWriter()
pdf_writer.addPage(pdf_reader.getPage(0))

pdf_writer.encrypt('user_password', 'owner_password')

result_pdf = open('encrypted.pdf', 'wb')
pdf_writer.write(result_pdf)
result_pdf.close()
pdf_file.close()

In diesem Code öffnen wir zunächst die PDF-Eingabedatei und erstellen ein PDF-Reader-Objekt. Anschließend erstellen wir ein PDF-Writer-Objekt und fügen ihm die erste Seite der PDF-Eingabedatei hinzu. Schließlich verschlüsseln wir die PDF-Datei mit einem Benutzerkennwort und einem Eigentümerkennwort und speichern das Ergebnis als neue Datei.

PDF-Dateien mit Python entschlüsseln

Um eine PDF-Datei zu entschlüsseln, können Sie den folgenden Code verwenden:

import PyPDF2

pdf_file = open('encrypted.pdf', 'rb')
pdf_reader = PyPDF2.PdfFileReader(pdf_file)

if pdf_reader.isEncrypted:
    pdf_reader.decrypt('password')

page = pdf_reader.getPage(0)
text = page.extractText()

print(text)

pdf_file.close()

Hier öffnen wir zunächst die verschlüsselte PDF-Datei und erstellen ein PDF-Leseobjekt. Dann prüfen wir, ob die PDF-Datei verschlüsselt ist und entschlüsseln sie mit dem Kennwort, falls dies der Fall ist. Wir extrahieren den Text aus der ersten Seite der PDF-Datei und geben ihn auf der Konsole aus.

Extrahieren von Text und Bildern aus PDFs

PyPDF2 ermöglicht es Ihnen, Text und Bilder aus PDF-Dateien zu extrahieren, mit Optionen zum Filtern und Verarbeiten der Ausgabe, wenn der Text und die Bilder in das digitale native PDF eingebettet sind. Sollte dies nicht der Fall sein, schauen Sie sich unser pytesseract-Tutorial an. Hier sehen Sie, wie man mit PyPDF2 Text aus einer PDF-Datei extrahiert:

import PyPDF2

pdf_file = open('input.pdf', 'rb')
pdf_reader = PyPDF2.PdfFileReader(pdf_file)

text = ''
for page in range(pdf_reader.getNumPages()):
    text += pdf_reader.getPage(page).extractText()

print(text)

pdf_file.close()

In diesem Code öffnen wir zunächst die PDF-Eingabedatei und erstellen ein PDF-Reader-Objekt. Anschließend durchlaufen wir jede Seite der PDF-Datei in einer Schleife und extrahieren den Text. Wir verketten den Text von jeder Seite und geben ihn auf der Konsole aus.

Um Bilder aus einer PDF-Datei zu extrahieren, können Sie den folgenden Code verwenden:

import PyPDF2

pdf_file = open('input.pdf', 'rb')
pdf_reader = PyPDF2.PdfFileReader(pdf_file)

for page in range(pdf_reader.getNumPages()):
    xObject = pdf_reader.getPage(page).getObject()['/Resources']['/XObject'].getObject()
    for obj in xObject:
        if xObject[obj]['/Subtype'] == '/Image':
            size = (xObject[obj]['/Width'], xObject[obj]['/Height'])
            data = xObject[obj]._data
            print(size, len(data))

pdf_file.close()

Konvertierung von PDFs in andere Formate mit PyPDF2

PyPDF2 ist eine leistungsstarke Python-Bibliothek, mit der Sie PDFs in andere Formate wie HTML, XML und einfachen Text konvertieren können. Dies kann nützlich sein, wenn Sie bestimmte Daten aus einer PDF-Datei extrahieren müssen oder den Inhalt einer PDF-Datei auf einer Website anzeigen möchten. Hier ist ein Beispiel für die Konvertierung eines PDFs in einfachen Text mit PyPDF2:

import PyPDF2

# Open the PDF file
pdf_file = open('example.pdf', 'rb')

# Create a PDF reader object
pdf_reader = PyPDF2.PdfFileReader(pdf_file)

# Get the first page of the PDF
page = pdf_reader.getPage(0)

# Extract the text from the page
text = page.extractText()

# Print the text
print(text)

# Close the PDF file
pdf_file.close()

In diesem Beispiel öffnen wir die PDF-Datei im Binärmodus und erstellen ein PDF-Reader-Objekt. Dann holen wir die erste Seite der PDF-Datei und extrahieren den Text daraus mit der Methode extractText(). Schließlich wird der extrahierte Text gedruckt.

Extrahieren und Ändern von Lesezeichen, Anmerkungen und Formularfeldern mit PyPDF2

Mit PyPDF2 können Sie verschiedene Elemente in einer PDF-Datei extrahieren und ändern, darunter Lesezeichen, Anmerkungen und Formularfelder. Dies kann nützlich sein, wenn Sie bestimmte Aufgaben automatisieren oder bestimmte Daten aus einer PDF-Datei extrahieren möchten. Hier ein Beispiel, wie man mit PyPDF2 Lesezeichen aus einer PDF-Datei extrahiert:

import PyPDF2

# Open the PDF file
pdf_file = open('example.pdf', 'rb')

# Create a PDF reader object
pdf_reader = PyPDF2.PdfFileReader(pdf_file)

# Get the bookmarks from the PDF
bookmarks = pdf_reader.getOutlines()

# Print the bookmarks
for bookmark in bookmarks:
    print(bookmark.title)

# Close the PDF file
pdf_file.close()

In diesem Beispiel öffnen wir die PDF-Datei im Binärmodus und erstellen ein PDF-Reader-Objekt. Anschließend verwenden wir die Methode getOutlines(), um die Lesezeichen aus der PDF-Datei zu extrahieren. Schließlich drucken wir die Titel der Lesezeichen aus.

Arbeiten mit PDF-Ebenen mit PyPDF2

PDF-Ebenen oder auch PDF-Layer, auch bekannt als optionale Inhaltsgruppen, ermöglichen es Ihnen, die Sichtbarkeit und das Aussehen verschiedener Elemente in einer PDF-Datei zu steuern. PyPDF2 bietet eine Möglichkeit, mit PDF-Ebenen zu arbeiten, so dass Sie bestimmte Ebenen aus einem PDF ändern oder extrahieren können. Hier ein Beispiel, wie man mit PyPDF2 eine bestimmte Ebene aus einer PDF-Datei extrahiert:

import PyPDF2

# Open the PDF file
pdf_file = open('example.pdf', 'rb')

# Create a PDF reader object
pdf_reader = PyPDF2.PdfFileReader(pdf_file)

# Get the first page of the PDF
page = pdf_reader.getPage(0)

# Get the layers from the page
layers = page['/OCProperties']['/OCGs']

# Print the layers
for layer in layers:
    print(layer)

# Close the PDF file
pdf_file.close()

In diesem Beispiel öffnen wir die PDF-Datei im Binärmodus und erstellen ein PDF-Reader-Objekt. Dann holen wir uns die erste Seite der PDF-Datei und extrahieren die Ebenen daraus mit der Syntax ['/OCProperties']['/OCGs']. Schließlich geben wir die Namen der Ebenen aus.In diesem Beispiel öffnen wir die PDF-Datei im Binärmodus und erstellen ein PDF-Reader-Objekt. Dann holen wir uns die erste Seite der PDF-Datei und extrahieren die Ebenen daraus mit der Syntax ['/OCProperties']['/OCGs']. Schließlich geben wir die Namen der Ebenen aus.

PyPDF2 ist eine leistungsstarke und flexible Bibliothek für die Arbeit mit PDF-Dateien in Python. Ganz gleich, ob Sie ein PDF erstellen, ändern oder Informationen daraus extrahieren müssen, PyPDF2 bietet eine breite Palette von Werkzeugen und Dienstprogrammen, die Ihnen dabei helfen, die Arbeit zu erledigen. Ob Sie nun Entwickler, Forscher oder einfach jemand sind, der regelmäßig mit PDFs arbeiten muss, PyPDF2 ist auf jeden Fall einen Blick wert.

PyPDF2 vs. Unternehmenslösung: Vergleich von Genauigkeit, Skalierbarkeit und Kosten

Es gibt mehrere Gründe, warum sich jemand für einen Document AI-Anbieter entscheidet, anstatt selbst eine Lösung zu programmieren:

  • Zeit
    Die Entwicklung einer benutzerdefinierten Lösung mit PyPDF2 zum Extrahieren und Ändern von PDF-Daten kann zeitaufwändig sein, insbesondere wenn die Anforderungen komplex sind. Der Einsatz eines Document AI-Anbieters kann Zeit sparen und den Prozess beschleunigen, so dass Sie sich auf Ihr Kerngeschäft konzentrieren können.
  • Fachwissen
    Die Verarbeitung und Extraktion von PDF-Dateien ist eine komplexe Aufgabe, die fundierte Kenntnisse der PDF-Spezifikation und der damit verbundenen Technologien erfordert. Ein Document AI-Anbieter verfügt über ein Team von Experten, die auf die PDF-Verarbeitung und -Extraktion spezialisiert sind und während des gesamten Prozesses Unterstützung und Anleitung bieten können.
  • Skalierbarkeit
    Mit dem Wachstum Ihres Unternehmens wächst auch das Volumen der PDF-Daten, die Sie verarbeiten und extrahieren müssen. Die Entwicklung und Pflege einer internen Lösung mit PyPDF2 kann schwierig zu skalieren und zu warten sein. Mit einem Document AI-Anbieter haben Sie Zugang zu einer skalierbaren Infrastruktur und Ressourcen, um große Mengen an PDF-Daten zu verarbeiten.
  • Genauigkeit
    Das Extrahieren von Daten aus PDFs kann eine schwierige Aufgabe sein, insbesondere wenn es um unterschiedliche PDF-Versionen, Layouts und Strukturen geht. Ein Document AI-Anbieter hat Zugang zu fortschrittlichen OCR- und Datenextraktionstechnologien, mit denen die Genauigkeit verbessert und Fehler reduziert werden können.
  • Kosten
    Die Entwicklung und Pflege einer internen Lösung mit PyPDF2 kann teuer sein, insbesondere wenn Sie Experten einstellen oder spezielle Tools und Software kaufen müssen. Ein Document AI-Anbieter bietet eine kostengünstige Alternative mit Zugang zu vorgefertigten Modellen und Infrastrukturen, so dass Sie die Kosten senken und sich auf Ihr Kerngeschäft konzentrieren können.

Insgesamt ist der Einsatz eines Document AI-Anbieters eine schnelle, kostengünstige und skalierbare Lösung, die es Ihnen ermöglicht, sich auf Ihr Geschäft zu konzentrieren und die technischen Details den Experten zu überlassen.

Bleiben Sie der Zeit voraus, indem Sie sich über die neuesten Forschungsergebnisse im Bereich Deep Learning und OCR-Anwendungen informieren. Automatisieren Sie Ihren Workflow mit Konfuzio und reduzieren Sie die Kosten für die Dateneingabe in Ihrem Unternehmen. Also, worauf warten Sie noch? Lesen Sie weiter und nutzen Sie die Möglichkeiten von heute mit Online OCR Services!

0 Kommentare

Schreiben Sie einen Kommentar

Weitere Artikel

fill pdf form

Die beste PDF-Formularausfüller-API 2023 stellt sich vor

Sind Sie es leid, Formulare in PDFs manuell auszufüllen? Möchten Sie Ihre Arbeitsabläufe rationalisieren und Ihre Produktivität steigern? Dann sind…

Zum Artikel

Die beste AWS Textract Alternative: Top 5 Anbieter

Sie suchen nach einer AWS Textract Alternative für Ihr Unternehmen? Sie haben das Produkt von Amazon für Ihre Anforderungen schon…

Zum Artikel
Offener Laptop, auf Bildschirm ist HTML Code zu sehen

Wie komme ich Schritt für Schritt vom PDF zum Text

Seit vielen Jahren hat sich das PDF Dateiformat als Standard für die digitale Verteilung von Dokumenten etabliert. Jedes Gerät, ob…

Zum Artikel

    Kontaktieren Sie uns!

    Arrow-up