Das Konvertieren einer Sammlung verstreuter Bilder in ein einzelnes, durchsuchbares PDF ist eine häufige Anforderung für Reporting‑Tools, Rechnungsgeneratoren und Archivierungssysteme. Aspose.PDF for Python via .NET ist ein leistungsstarkes SDK, das diese Konvertierung in Python‑Anwendungen schnell und zuverlässig macht. Dieser Leitfaden führt Sie durch die Installation des SDK, das Laden von Bildern mit der Python Imaging Library, das schrittweise Erstellen des PDFs, das Anpassen von Komprimierungseinstellungen und schließlich das Speichern des Ergebnisses, alles mit klaren Codebeispielen.

Bevor Sie beginnen: Voraussetzungen und Installation

Um diesem Tutorial zu folgen, benötigen Sie:

  • Python 3.8 oder neuer, installiert auf Ihrem Entwicklungsrechner.
  • Eine IDE oder ein Editor Ihrer Wahl (VS Code, PyCharm usw.).
  • Zugriff auf das Internet, um das SDK-Paket herunterzuladen.

Installieren Sie das Aspose.PDF SDK und die Pillow‑Bibliothek (die de‑facto Python Imaging Library) mit pip:

pip install aspose-pdf pillow

Sie können das SDK auch manuell von der offiziellen Release‑Seite herunterladen: Aspose.PDF for Python via .NET Download. Nach der Installation importieren Sie die erforderlichen Namespaces in Ihrem Skript.

Jetzt, da die Umgebung bereit ist, tauchen wir in die Implementierung ein.

PDF aus Bildern in Python erstellen: Schritt‑für‑Schritt‑Anleitung

Schritt 1: Laden der Quellbilder

Zuerst verwenden Sie Pillow, um jede Bilddatei zu öffnen und sie in einer Liste zu speichern. Dies bereitet die Bilddaten für den PDF-Builder vor.

from PIL import Image
import os

image_folder = "input_images"
image_paths = [os.path.join(image_folder, f) for f in os.listdir(image_folder)
               if f.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif'))]

images = [Image.open(p) for p in image_paths]

Schritt 2: Erstellen Sie ein neues PDF-Dokument

Instanziieren Sie das Aspose.PDF Document‑Objekt, das die Seiten enthält.

import aspose.pdf as ap

pdf_doc = ap.Document()

Für weitere Details zur Document‑Klasse siehe die API‑Referenz.

Schritt 3: Jedes Bild als separate Seite hinzufügen

Durchlaufen Sie die geladenen Bilder, erstellen Sie eine Seite und betten Sie das Bild ein. Das SDK skaliert das Bild automatisch, um die Seitengröße anzupassen.

for img in images:
    page = pdf_doc.pages.add()
    # Convert Pillow image to a byte stream compatible with Aspose.PDF
    with io.BytesIO() as img_stream:
        img.save(img_stream, format='PNG')
        img_stream.seek(0)
        page.resources.images.add(ap.Image(img_stream))
        # Fit the image to the page dimensions
        page.page_info.width = img.width
        page.page_info.height = img.height

Schritt 4: Komprimierungsoptionen konfigurieren

Passen Sie die Bildkomprimierungsstufe an, um die endgültige PDF‑Größe zu reduzieren, ohne die Qualität zu beeinträchtigen.

# Set JPEG compression for all images (if using JPEG format)
for img_res in pdf_doc.resources.images:
    img_res.compression = ap.ImageCompression.JPEG
    img_res.jpeg_quality = 80  # Quality range: 0‑100

Schritt 5: PDF-Datei speichern

Schreiben Sie schließlich das zusammengefügte Dokument auf die Festplatte.

output_path = "output/result.pdf"
pdf_doc.save(output_path)
print(f"PDF generated successfully at {output_path}")

Mit diesen Schritten haben Sie einen voll funktionsfähigen Workflow, um PDF aus Bildern in Python zu erzeugen.

PDF aus Bildersammlung in Python erstellen – Vollständiges Codebeispiel

Das folgende Skript fügt alle Teile zu einem einzigen, ausführbaren Programm zusammen.

import os
import io
from PIL import Image
import aspose.pdf as ap

# -------------------- Configuration --------------------
image_folder = "input_images"          # Folder containing source images
output_pdf = "output/result.pdf"       # Destination PDF file
jpeg_quality = 80                      # Compression quality (0‑100)

# -------------------- Load Images --------------------
image_paths = [os.path.join(image_folder, f) for f in os.listdir(image_folder)
               if f.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif'))]

images = [Image.open(p) for p in image_paths]

# -------------------- Create PDF Document --------------------
pdf_doc = ap.Document()

for img in images:
    page = pdf_doc.pages.add()
    with io.BytesIO() as img_stream:
        img.save(img_stream, format='PNG')
        img_stream.seek(0)
        pdf_image = page.resources.images.add(ap.Image(img_stream))
        page.page_info.width = img.width
        page.page_info.height = img.height
        # Apply compression if the original is JPEG
        if img.format == 'JPEG':
            pdf_image.compression = ap.ImageCompression.JPEG
            pdf_image.jpeg_quality = jpeg_quality

# -------------------- Save PDF --------------------
pdf_doc.save(output_pdf)
print(f"PDF generated successfully at {output_pdf}")

Hinweis: Dieses Codebeispiel demonstriert die Kernfunktionalität. Bevor Sie es in Ihrem Projekt verwenden, stellen Sie sicher, dass Sie die Dateipfade (input_images, output/result.pdf) aktualisieren, dass alle erforderlichen Abhängigkeiten korrekt installiert sind und testen Sie gründlich in Ihrer Entwicklungsumgebung. Wenn Sie auf Probleme stoßen, lesen Sie bitte die offizielle Dokumentation oder wenden Sie sich an das Support-Team für Unterstützung.

Erweiterte PDF-Generierungseinstellungen: Optionen und Konfiguration

Über den grundlegenden Arbeitsablauf hinaus bietet Aspose.PDF mehrere Eigenschaften, um die Ausgabe fein abzustimmen.

Bildkomprimierungsstufe

Steuern Sie den Kompromiss zwischen Qualität und Dateigröße.

pdf_image.compression = ap.ImageCompression.JPEG
pdf_image.jpeg_quality = 70   # Niedrigerer Wert = kleinere Datei, geringere Qualität

Seitengröße und Ränder

Legen Sie eine benutzerdefinierte Seitengröße fest, wenn Sie ein einheitliches Layout benötigen.

page.page_info.width = 595   # A4 width in points
page.page_info.height = 842  # A4 height in points
page.page_info.margin = ap.MarginInfo(10, 10, 10, 10)

Auflösung (DPI)

Eine höhere DPI führt zu schärferen Bildern, allerdings auf Kosten größerer PDFs.

pdf_doc.page_info.dpi = 300

Für eine vollständige Liste konfigurierbarer Eigenschaften konsultieren Sie die API‑Referenz.

Fazit

Sie haben jetzt eine vollständige, programmatische Lösung, um PDF aus Bildern in Python generieren zu erzeugen, indem Sie Aspose.PDF for Python via .NET verwenden. Das SDK übernimmt das Laden von Bildern, das Erstellen von Seiten, die Komprimierung und das Speichern mit nur wenigen Codezeilen, sodass Sie sich auf die Geschäftslogik anstatt auf die Low‑Level‑PDF‑Verarbeitung konzentrieren können. Wenn Sie in die Produktion gehen, denken Sie daran, eine gültige Lizenz zu erwerben; Details finden Sie auf der Preisseite und Sie können für die Evaluierung mit einer temporären Lizenz beginnen. Viel Spaß beim Programmieren und genießen Sie die Einfachheit, Bildersammlungen in professionelle PDFs zu verwandeln!

Häufig gestellte Fragen

  • Wie kann ich mit Python und Aspose.PDF PDF aus Bildern erzeugen?
    Verwenden Sie das Aspose.PDF SDK, um ein Document zu erstellen, fügen Sie für jedes mit Pillow geladene Bild eine Seite hinzu, setzen Sie optional die Kompression und rufen Sie save() auf, um das PDF zu schreiben. Das vollständige Beispiel ist oben enthalten.

  • Welche Bildformate werden für die PDF-Erstellung unterstützt?
    Das SDK akzeptiert PNG, JPG, JPEG, BMP, GIF und TIFF direkt. Pillow kann auch nicht unterstützte Formate in eines dieser Formate konvertieren, bevor sie dem PDF hinzugefügt werden.

  • Benötige ich eine Lizenz für die kommerzielle Nutzung?
    Ja. Holen Sie sich eine temporäre Evaluierungslizenz von der temporären Lizenzseite und erwerben Sie eine Volllizenz über die Preisübersicht für Produktionsbereitstellungen.

  • Kann ich die PDF‑Seitengröße und Auflösung anpassen?
    Absolut. Verwenden Sie page.page_info.width, page.page_info.height und pdf_doc.page_info.dpi, um die Abmessungen und DPI zu steuern, wie im Abschnitt Konfiguration / Optionen gezeigt.

Mehr lesen