CodeGym /Kurse /Python SELF DE /Zusammenführen mehrerer PDF-Dateien zu einem Dokument

Zusammenführen mehrerer PDF-Dateien zu einem Dokument

Python SELF DE
Level 43 , Lektion 3
Verfügbar

1. PDF-Zusammenführung mit PyPDF2

Warum PDF-Dateien zusammenführen?

Lass uns zuerst herausfinden, warum man überhaupt PDF-Dateien zusammenführen sollte. Wie man so schön sagt: "Ein PDF ist besser als zehn!". In einer Arbeitssituation kann es Berichte, Forschungsergebnisse, technische Dokumentationen oder Präsentationen geben, die als separate Dateien bereitgestellt werden. Ständig zwischen diesen Dateien zu wechseln, ist nicht nur unbequem, sondern auch riskant — man könnte etwas übersehen. Durch das Zusammenfügen aller Dateien in ein Dokument erleichtert man die Arbeit mit diesen Daten und schafft einen strukturierten Ansatz für deren Analyse und Verteilung.

Außerdem ist die Zusammenführung von PDF-Dateien praktisch für die Archivierung, die Erstellung eines zusammenfassenden Berichts oder das Zusammenfügen mehrerer Dokumentversionen, um Änderungen nachzuverfolgen. Kurz gesagt, die Möglichkeiten sind zahlreich!

Grundlagen der Verwendung von PyPDF2 für die PDF-Zusammenführung

Fangen wir mit den Grundlagen der Arbeit mit PyPDF2 an. Wir erstellen ein Skript, das mehrere PDFs in einer Datei zusammenführt. Natürlich wird der Code mit Kommentaren versehen, damit du jeden Schritt nachvollziehen kannst.

Python

import PyPDF2

# Erstellen eines PdfMerger-Objekts aus der PyPDF2-Bibliothek
pdf_merger = PyPDF2.PdfMerger()

# Liste der PDF-Dokumente, die zusammengeführt werden sollen
pdf_files = ['document1.pdf', 'document2.pdf', 'document3.pdf']

# Schleife zum Hinzufügen jeder Datei zum PdfMerger-Objekt
for file in pdf_files:
    pdf_merger.append(file)

# Speichern des Ergebnisses in einer neuen PDF-Datei
output_filename = 'merged_document.pdf'
with open(output_filename, 'wb') as output_file:
    pdf_merger.write(output_file)

# Schließen des PdfMerger-Objekts, um Ressourcen freizugeben
pdf_merger.close()

print(f"Die zusammengeführte PDF wurde erstellt: {output_filename}")

Reihenfolge und Struktur der zusammengeführten Datei

Jetzt, da wir gelernt haben, wie man PDF-Dokumente zusammenführt, lohnt es sich, über die Seitenreihenfolge nachzudenken. Denk daran, dass PyPDF2 die Seiten in der Reihenfolge hinzufügt, in der du die Dateien an die .append()-Methode übergibst. Die Reihenfolge in der Liste pdf_files beeinflusst also die Reihenfolge im endgültigen Dokument.

2. Zusammenführung einzelner Seiten

Wenn du nicht Dokumente, sondern Teile von ihnen zu einer Datei zusammenfügen möchtest, solltest du die Klasse PdfWriter anstelle von PdfMerger verwenden. Ein Beispiel:

Python

import PyPDF2

# Liste der PDF-Dateien, die zusammengeführt werden sollen
pdf_files = ["file1.pdf", "file2.pdf", "file3.pdf"]

# Erstellen eines PdfWriter-Objekts, um die zusammengeführte Datei zu schreiben
pdf_writer = PyPDF2.PdfWriter()

# Iteration durch jede PDF-Datei
for pdf_file in pdf_files:
    with open(pdf_file, "rb") as file:
        pdf_reader = PyPDF2.PdfReader(file)
        # Jede Seite zur PdfWriter hinzufügen
        for page_num in range(len(pdf_reader.pages)):
            # Hier kannst du Seiten überspringen, die nicht hinzugefügt werden sollen
            page = pdf_reader.pages[page_num]
            pdf_writer.add_page(page)

# Speichern der zusammengeführten PDF
with open("merged_document.pdf", "wb") as output_file:
    pdf_writer.write(output_file)

Wie funktioniert dieser Code?

  1. Eine Liste von Dateien erstellen: Die Liste pdf_files enthält die Pfade zu den PDF-Dokumenten, die zusammengefügt werden sollen.
  2. PdfWriter initialisieren: pdf_writer wird verwendet, um eine neue PDF-Datei zu erstellen.
  3. Jede Datei durchgehen: Jede PDF-Datei wird im Lesemodus geöffnet.
  4. Seiten hinzufügen: Alle Seiten der Datei werden nacheinander mit der Methode add_page() zum pdf_writer-Objekt hinzugefügt.
  5. Ergebnis speichern: Nachdem alle Seiten hinzugefügt wurden, wird die neue PDF-Datei in merged_document.pdf geschrieben.

3. Styling des neuen Dokuments

Hinzufügen von Lesezeichen und Inhaltsverzeichnis

Was tun, wenn dein zusammengeführtes Dokument zu groß geworden ist und die Orientierung schwerfällt? In solchen Fällen sind Lesezeichen hilfreich! PyPDF2 ermöglicht das Hinzufügen von grundlegenden Lesezeichen, um die Navigation im Dokument zu erleichtern. Lass uns Lesezeichen für jede Datei hinzufügen, die wir zusammenfügen.

Python

pdf_merger = PyPDF2.PdfMerger()

# Seitenindex für Lesezeichen
page_offset = 0

for file in pdf_files:
    # Das aktuelle Dokument lesen
    pdf_reader = PyPDF2.PdfReader(file)

    # Das Dokument dem PdfMerger hinzufügen
    pdf_merger.append(file)

    # Ein Lesezeichen mit dem Dateinamen hinzufügen
    pdf_merger.add_bookmark(file, page_offset)

    # Die Seitenverschiebung aktualisieren
    page_offset += len(pdf_reader.pages)

with open(output_filename, 'wb') as output_file:
    pdf_merger.write(output_file)

pdf_merger.close()

Dieser kleine Trick hilft dir, die Nerven zu bewahren und nicht in einem PDF-Dokumentenmeer zu versinken.

Aktualisieren der Metadaten der zusammengeführten Datei

Nach der Zusammenführung kannst du die Metadaten des Dokuments, wie Autor, Titel oder Schlüsselwörter, hinzufügen oder ändern.

Python

import PyPDF2

pdf_files = ["file1.pdf", "file2.pdf"]
pdf_writer = PyPDF2.PdfWriter()

for pdf_file in pdf_files:
    with open(pdf_file, "rb") as file:
        pdf_reader = PyPDF2.PdfReader(file)
        for page_num in range(len(pdf_reader.pages)):
            page = pdf_reader.pages[page_num]
            pdf_writer.add_page(page)

# Hinzufügen von Metadaten
pdf_writer.add_metadata({
    "/Title": "Zusammengeführtes Dokument",
    "/Author": "Hans Müller",
    "/Subject": "Verkaufsbericht"
})

# Speichern der zusammengeführten Datei
with open("merged_with_metadata.pdf", "wb") as output_file:
    pdf_writer.write(output_file)

Dieser Code fügt Metadaten hinzu, die bei der Identifizierung und Strukturierung des Dokuments helfen können.

Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION