Rust PDF erstellen: Komplette Anleitung mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

PDF mit Rust: Vollständige Anleitung zur Dokumenterstellung mit der Bibliothek printpdf

1. Was ist printpdf und warum sollte man es nutzen?

printpdf ist eine leistungsstarke und flexible Bibliothek für die Programmiersprache Rust, die speziell für die Erstellung von PDF-Dokumenten „von Grund auf“ entwickelt wurde. Im Gegensatz zu vielen anderen Tools, die lediglich HTML oder Markdown in PDF konvertieren, bietet printpdf eine Low-Level-API, die Ihnen die vollständige Kontrolle über jeden Aspekt Ihres Dokuments gibt: von der Platzierung von Text und Vektorgrafiken bis hin zur Einbettung von Schriftarten und Bildern. Diese Bibliothek ist in reinem Rust ohne externe Abhängigkeiten (außer der Standardbibliothek) geschrieben, was sie zur idealen Wahl für Systeme macht, bei denen Speichersicherheit, Leistung und Portabilität entscheidend sind.

Warum sollten Sie printpdf verwenden? In der heutigen Welt ist PDF das universelle Format für den Dokumentenaustausch. Die serverseitige PDF-Generierung wird in vielen verschiedenen Szenarien benötigt: Erstellung von Rechnungen in ERP-Systemen, Generierung von Berichten und Analyse-Dashboards, Ausstellung von Zertifikaten und Diplomen, Erstellung von Druckvorlagen und Formularen. Rust, mit seinem Fokus auf Leistung und Zuverlässigkeit, ist für solche Aufgaben ideal geeignet. printpdf ermöglicht dies effizient, ohne den Overhead externer Prozesse (wie bei wkhtmltopdf) oder den Einsatz schwerer Browser-Engines.

Zu den wichtigsten Funktionen der Bibliothek gehören: Unterstützung aller standardmäßigen PDF-Objekte (Seiten, Schriftarten, Bilder, Grafiken), Arbeit mit Unicode und Einbettung von TrueType/OpenType-Schriftarten, Erstellung mehrseitiger Dokumente, Verwendung der Farbräume RGB, CMYK und Graustufen sowie präzise Positionierung von Elementen mithilfe des PDF-Koordinatensystems. Es ist kein Tool zur „schnellen“ Konvertierung, sondern eher ein „Baukasten“ für die professionelle Dokumenterstellung.

2. Installation

Um die Bibliothek printpdf in Ihr Rust-Projekt zu integrieren, verwenden Sie den Standard-Paketmanager Cargo. Sie müssen die Abhängigkeit in der Datei Cargo.toml Ihres Projekts hinzufügen.

Öffnen Sie ein Terminal im Stammverzeichnis Ihres Projekts und führen Sie den folgenden Befehl aus:

cargo add printpdf

Oder fügen Sie manuell die folgende Zeile im Abschnitt [dependencies] Ihrer Cargo.toml hinzu:

[dependencies]
printpdf = "0.7"

Danach lädt Cargo die Bibliothek und alle ihre internen Abhängigkeiten automatisch beim nächsten Build Ihres Projekts herunter. Stellen Sie sicher, dass Rust (rustc) und Cargo installiert sind. Falls nicht, besuchen Sie rustup.rs für die Installation.

3. Schnellstart – Minimales funktionsfähiges Beispiel

Lassen Sie uns ein einfaches PDF-Dokument mit einer Seite und Text erstellen. Dieses Beispiel zeigt den grundlegenden Arbeitsablauf mit der Bibliothek: Dokument erstellen, Seite hinzufügen, Schriftart auswählen, Text zeichnen und Datei speichern.

use printpdf::*;
use std::fs::File;
use std::io::BufWriter;

fn main() {
    // Neues PDF-Dokument erstellen
    let (doc, page1, layer1) = PdfDocument::new(
        "Mein erstes PDF mit Rust",
        Mm(210.0), // Seitenbreite (A4)
        Mm(297.0), // Seitenhöhe (A4)
        "Layer 1", // Name der Ebene
    );

    // Standardschriftart abrufen (eingebautes Helvetica)
    let font = doc.add_builtin_font(BuiltinFont::Helvetica).unwrap();

    // Mit der Ebene arbeiten
    let current_layer = doc.get_page(page1).get_layer(layer1);

    // Schriftart in 48pt, schwarzer Farbe verwenden
    current_layer.use_text("Hallo, Rust PDF!", 48.0, Mm(50.0), Mm(200.0), &font);

    // Dokument in eine Datei speichern
    let file =                    

Empfehlungen