Signatur
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
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.';
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.';
// 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.