Zum Inhalt

Dokumentenautomatisierung

4. Dateiverarbeitung und Dokumentenautomatisierung

In diesem Abschnitt erfahren Sie, wie Sie PDF-Dokumente automatisch lesen, erstellen, teilen und mit Wasserzeichen versehen, ohne eine Point-and-Click-Softwareanwendung zu verwenden.

Tools und Bibliotheken

  • pypdf (ehemals PyPDF2): Die branchenübliche Bibliothek zum Lesen, Bearbeiten, Teilen, Zusammenführen und Verschlüsseln von PDF-Dateien.
  • pathlib: Ein modernes, objektorientiertes Tool zum Verwalten von Dateipfaden unter Windows, Mac und Linux, ohne sich um Backslashes oder Forwardslashes kümmern zu müssen.
  • os: Ein integriertes Modul, das es Ihrem Python-Skript ermöglicht, Betriebssystemaufgaben wie das Löschen von Dateien, das Überprüfen von Umgebungsvariablen oder das Erstellen von Ordnern auszuführen.

Kernmethoden und Codebeispiel

  • Path.cwd() / Path.glob('*.pdf'): Findet den genauen Ordner, in dem Ihr Skript ausgeführt wird, und durchsucht ihn, um alle verfügbaren PDF-Dateien automatisch zu sammeln.
  • PdfReader('file.pdf') & PdfWriter(): Öffnet ein vorhandenes PDF-Dokument zum Lesen seiner Seiten und richtet eine leere digitale Leinwand ein, um neue Dateien in den Speicher Ihres Computers zu schreiben.
  • PdfWriter.add_page(page): Trennt eine einzelne Seite aus einer Eingabe-PDF-Datei und legt sie in einem brandneuen PDF-Ausgabestream ab.
  • PageObject.merge_page(watermark_page): Überlagert eine Hintergrundgrafikebene (wie einen „Vertraulich“-Stempel) perfekt über einer Textseite.
from pathlib import Path
from pypdf import PdfReader, PdfWriter

# 1. Pathlib Example: Discover files automatically
# Instead of typing "C:/Users/Documents/...", Path.cwd() finds where you are.
current_folder = Path.cwd()
pdf_files = list(current_folder.glob('*.pdf'))

if pdf_files:
    # 2. pypdf Example: Extracting a page
    reader = PdfReader(pdf_files[0]) # Open the first PDF found
    writer = PdfWriter()             # Create a "blank" PDF in memory

    # Grab the first page and add it to our new blank document
    first_page = reader.pages[0]
    writer.add_page(first_page)

    # 3. OS/File Example: Saving to disk
    # 'wb' stands for "Write Binary" — required for PDF files.
    with open('extracted_page.pdf', 'wb') as output_file:
        writer.write(output_file)