CodeGym /Java-Kurse /Python SELF DE /Aufteilen von Seiten eines PDF-Dokuments, um einzelne Tei...

Aufteilen von Seiten eines PDF-Dokuments, um einzelne Teile zu speichern

Python SELF DE
Level 43 , Lektion 4
Verfügbar

1. Aufteilen eines PDF-Dokuments in Seiten

Grundlagen des Aufteilens von PDFs mit PyPDF2

PyPDF2 bietet die Klasse PdfReader zum Öffnen von PDF-Dateien und Lesen von Seiten sowie die Klasse PdfWriter, um Seiten in ein neues PDF-Dokument zu schreiben. Um ein Dokument in einzelne Seiten aufzuteilen, wird add_page() in PdfWriter verwendet, um die gewünschten Seiten in separate Dateien zu speichern.

Speichern jeder PDF-Seite als eigenes Dokument

Dieser Code teilt das Dokument, indem er für jede Seite der Originaldatei eine separate PDF-Datei erstellt.

Python

import PyPDF2

# Öffnen der PDF-Datei
with open("sample.pdf", "rb") as pdf_file:
    pdf_reader = PyPDF2.PdfReader(pdf_file)
    
    # Iteration durch jede Seite
    for page_num in range(len(pdf_reader.pages)):
        pdf_writer = PyPDF2.PdfWriter()
        
        # Extrahieren der Seite und Hinzufügen zu einem neuen PDF
        page = pdf_reader.pages[page_num]
        pdf_writer.add_page(page)
        
        # Speichern der aktuellen Seite als separate PDF-Datei
        output_filename = f"page_{page_num + 1}.pdf"
        with open(output_filename, "wb") as output_file:
            pdf_writer.write(output_file)

print("Jede Seite wurde als separate Datei gespeichert.")

In diesem Beispiel wird jede Seite des Originaldokuments in eine separate Datei gespeichert: page_1.pdf, page_2.pdf und so weiter.

2. Extrahieren eines Seitenbereichs

Manchmal ist es notwendig, nicht jede Seite, sondern einen bestimmten Seitenbereich zu speichern, z. B. von Seite 1 bis 5. Dafür kann man die gewünschten Seiten im Loop angeben.

Python

import PyPDF2

with open("sample.pdf", "rb") as pdf_file:
    pdf_reader = PyPDF2.PdfReader(pdf_file)
    pdf_writer = PyPDF2.PdfWriter()
    
    # Definieren des Seitenbereichs, z. B. Seiten 1 bis 5
    start_page = 1
    end_page = 5
    
    for page_num in range(start_page - 1, end_page):  # Seitennummerierung beginnt bei 0
        page = pdf_reader.pages[page_num]
        pdf_writer.add_page(page)

    # Speichern des Seitenbereichs als neues PDF
    with open("pages_1_to_5.pdf", "wb") as output_file:
        pdf_writer.write(output_file)

print("Der Seitenbereich wurde erfolgreich gespeichert.")

Dieser Code extrahiert die Seiten von 1 bis 5 und speichert sie in der Datei pages_1_to_5.pdf.

3. Speichern mehrerer Bereiche

Falls es notwendig ist, mehrere Seitenbereiche zu extrahieren und in separate Dateien zu speichern, kann man eine Funktion verwenden, die den Start und das Ende des Bereichs akzeptiert.

Python

import PyPDF2

def save_page_range(input_pdf, output_pdf, start_page, end_page):
    with open(input_pdf, "rb") as pdf_file:
        pdf_reader = PyPDF2.PdfReader(pdf_file)
        pdf_writer = PyPDF2.PdfWriter()
        
        for page_num in range(start_page - 1, end_page):
            page = pdf_reader.pages[page_num]
            pdf_writer.add_page(page)

        with open(output_pdf, "wb") as output_file:
            pdf_writer.write(output_file)
    
    print(f"Seiten {start_page}–{end_page} wurden in {output_pdf} gespeichert")

# Verwenden der Funktion zum Extrahieren verschiedener Bereiche
save_page_range("sample.pdf", "section_1.pdf", 1, 3)
save_page_range("sample.pdf", "section_2.pdf", 4, 6)

Dieser Code erstellt zwei Funktionen zum Speichern der Seiten von 1 bis 3 und von 4 bis 6, die in section_1.pdf und section_2.pdf gespeichert werden.

4. Massenverarbeitung von PDF-Dokumenten

Automatisiertes Teilen von PDFs für alle Seiten in einem Ordner

Falls du jede Seite aller PDFs in einem angegebenen Ordner aufteilen musst, kannst du ein Skript erstellen, das jede Datei automatisch verarbeitet.

Python

import PyPDF2
import os

# Pfad zum Ordner mit PDF-Dateien
folder_path = "pdf_folder"

# Automatisches Teilen aller PDFs im Ordner
for filename in os.listdir(folder_path):
    if filename.endswith(".pdf"):
        file_path = os.path.join(folder_path, filename)
        with open(file_path, "rb") as pdf_file:
            pdf_reader = PyPDF2.PdfReader(pdf_file)
            
            # Aufteilen der Datei in separate Seiten
            for page_num in range(len(pdf_reader.pages)):
                pdf_writer = PyPDF2.PdfWriter()
                page = pdf_reader.pages[page_num]
                pdf_writer.add_page(page)
                
                # Erstellen des Namens der Ausgabedatei
                output_filename = f"{filename[:-4]}_page_{page_num + 1}.pdf"
                output_path = os.path.join(folder_path, output_filename)
                
                # Speichern der Seite
                with open(output_path, "wb") as output_file:
                    pdf_writer.write(output_file)

print("Alle Seiten aus jeder PDF-Datei im Ordner wurden erfolgreich gespeichert.")

Dieses Skript durchläuft automatisch jede PDF-Datei im Ordner pdf_folder und speichert jede Seite als separate PDF mit dem Namen <Dateiname>_page_<Nummer>.pdf.

5. Wann sollte man PDFs aufteilen?

Wie ein großartiger Entwickler, der nach langen Stunden des Codings – genau wie wir – oft fragt: "Warum?". Das Aufteilen von PDF-Dokumenten kann in verschiedenen Situationen notwendig sein:

  • Hervorheben wichtiger Seiten: Teile nur die benötigten Seiten, ohne die gesamte "Krieg und Frieden"-Datei an Kollegen zu senden.
  • Erstellen von Sammlungen: Speichere wichtige Kapitel aus verschiedenen Dokumenten in einer Datei für Bildungszwecke oder Arbeitsanforderungen.
  • Archivierung: Speichere ein Archiv wichtiger Daten Seite für Seite, damit keine wertvollen Informationen zwischen unnötigen Seiten verloren gehen.

Und hier kommt unser Held PyPDF2 ins Spiel, der dir das Leben erleichtert!

6. Mögliche Schwierigkeiten und wie man sie vermeidet

Beim Arbeiten mit PDFs könntest du auf einige Herausforderungen stoßen. Zum Beispiel beginnt die Seitennummerierung in PyPDF2 bei Null. Vergiss also nicht, dies zu berücksichtigen, wenn du die gewünschten Seiten angibst. Schließlich gibt es nichts Schlimmeres, als Zeit mit dem Extrahieren der falschen Seiten zu verschwenden!

Außerdem solltest du beim Arbeiten mit geöffneten und geschlossenen Dateien sicherstellen, dass alle close() korrekt aufgerufen werden. Ein nicht geschlossenes Buch kann zu Schmerzen führen, besonders wenn es ein Lehrbuch über Oracle ist.

Anwendung im echten Leben

Die Verwendung dieser Methode ist nicht nur zur Bearbeitung persönlicher Dokumente praktisch. Beispielsweise, wenn du in einer Anwaltskanzlei arbeitest und schnell bestimmte Abschnitte aus einem umfangreichen Fall für das Gericht vorbereiten musst, kann das Aufteilen von PDFs dir erheblich Zeit und Mühe sparen.

Ähnliche Techniken können auch zum Erstellen von Lernmaterialien, Hervorheben wichtiger Abschnitte aus technischen Berichten und vielem mehr verwendet werden. Der wahre Zauber liegt darin, wie einfach es ist, diese Routineaufgaben zu automatisieren!

1
Опрос
PDF-Dateien lesen mit PyPDF2,  43 уровень,  4 лекция
недоступен
PDF-Dateien lesen mit PyPDF2
PDF-Dateien lesen mit PyPDF2
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION