Start · Sprachen · PHP · Referenz · wkhtmltox\PDF\Object

wkhtmltox\PDF\Object

Klasse

Repräsentiert ein einzelnes HTML-Dokument (oder eine HTML-Seite), das als Eingabe-Objekt für den <code>wkhtmltox\PDF\Converter</code> dient.

Kategorie: misc

Signatur

class wkhtmltox\PDF\Object

Beschreibung

wkhtmltox\PDF\Object kapselt ein HTML-Dokument, das in den PDF-Konvertierungsprozess eingespeist werden soll. Üblicherweise entspricht ein Object einer Seite oder einem Abschnitt des erzeugten PDFs – es kann sich dabei um eine URL, eine lokale HTML-Datei oder um einen rohen HTML-String handeln.

Das Objekt wird mit konfigurierbaren Einstellungen (Settings) erstellt, die steuern, wie wkhtmltopdf das zugrunde liegende Dokument rendert – etwa Seitenränder, Header, Footer, JavaScript-Unterstützung oder Authentifizierungsdaten für geschützte URLs. Die Einstellungen werden als assoziatives Array oder über entsprechende Setter übergeben.

Nach der Konfiguration wird das Object dem wkhtmltox\PDF\Converter mittels dessen add()-Methode hinzugefügt. Ein einziger Konverter kann mehrere Objekte aufnehmen, wodurch mehrteilige PDFs aus verschiedenen HTML-Quellen zusammengestellt werden können.

Die Klasse ist Teil der PHP-Erweiterung wkhtmltox (PECL), die eine Schnittstelle zur nativen libwkhtmltox-Bibliothek bereitstellt. Sie ist daher nur verfügbar, wenn diese Erweiterung installiert und die Bibliothek auf dem System vorhanden ist.

Parameter

Name Typ Default Beschreibung
$settings Pflicht array Assoziatives Array mit Einstellungen für das HTML-Objekt. Typische Schlüssel sind z. B. page (URL oder Dateipfad), web.enableJavascript, header.html, footer.html, load.username und load.password. Die vollständige Liste entspricht den Optionen von wkhtmltopdf für Object-Settings.

Rückgabewert

Typ

Beispiele

Einfaches PDF aus einer URL erzeugen

<?php
// Konverter mit globalen PDF-Einstellungen erstellen
$converter = new wkhtmltox\PDF\Converter([
    'out' => '/tmp/ausgabe.pdf',
]);

// HTML-Objekt für eine Webseite anlegen
$object = new wkhtmltox\PDF\Object([
    'page' => 'https://example.com',
]);

// Objekt dem Konverter hinzufügen
$converter->add($object);

// Konvertierung starten
$converter->convert();

echo 'PDF wurde erfolgreich erstellt.';
PDF wurde erfolgreich erstellt.

Mehrseitiges PDF aus mehreren HTML-Quellen

<?php
$converter = new wkhtmltox\PDF\Converter([
    'out' => '/tmp/bericht.pdf',
]);

// Erste Seite: lokale HTML-Datei
$deckblatt = new wkhtmltox\PDF\Object([
    'page'                  => 'file:///var/www/html/deckblatt.html',
    'web.enableJavascript'  => false,
]);

// Zweite Seite: externe URL mit Footer
$inhalt = new wkhtmltox\PDF\Object([
    'page'        => 'https://intern.example.com/bericht',
    'footer.html' => 'file:///var/www/html/footer.html',
    'footer.line' => true,
]);

$converter->add($deckblatt);
$converter->add($inhalt);
$converter->convert();

echo 'Mehrseitiger Bericht erstellt.';
Mehrseitiger Bericht erstellt.

// Wichtig · Fallstricke

Voraussetzungen: Die PECL-Erweiterung wkhtmltox muss installiert sein (pecl install wkhtmltox), und die native Bibliothek libwkhtmltox muss auf dem System verfügbar sein. Ohne diese Abhängigkeiten ist die Klasse nicht verfügbar.

Sicherheit: Übergeben Sie niemals unkontrollierte Benutzereingaben als page-URL, da dies zu Server-Side Request Forgery (SSRF) führen kann. Validieren und sanitisieren Sie alle URLs und Dateipfade strikt, bevor Sie sie in das Settings-Array eintragen.

JavaScript: Standardmäßig wird JavaScript beim Rendern ausgeführt. Wenn die Quellseite nicht vertrauenswürdig ist, deaktivieren Sie JavaScript über 'web.enableJavascript' => false, um unerwünschten Code auszuführen zu verhindern.

Authentifizierung: Zugangsdaten für geschützte Seiten (load.username, load.password) werden im Klartext übergeben. Stellen Sie sicher, dass diese Werte nicht in Logs auftauchen oder anderweitig exponiert werden.