Dokumentation · Technische Dokumentation

Technische Hinweise zur PDF-Generierung

Dieses Dokument beschreibt, wie das ADP Car Market Hub-Plugin druckoptimierte Fahrzeugdatenblätter („Exposés“) erstellt, die Besucher über den Druckdialog ihres Browsers als PDF speichern können.

Wann Sie dieses Dokument verwenden sollten

Lesen Sie dieses Dokument, wenn Sie Folgendes tun müssen:

  • Anpassen, welche Felder auf dem druckbaren Datenblatt erscheinen.
  • Ersetzen der standardmäßigen QR-Code-Bildquelle durch einen selbstgehosteten Generator.
  • Einbetten eines Links zum druckbaren Datenblatt eines Fahrzeugs von einer anderen Seite oder einem anderen System aus.
  • Diagnose fehlender oder fehlerhafter Daten auf der druckbaren Seite.

Übersicht

Das PDF-Datenblatt ist in AS24CI\Pdf_Datasheet implementiert. Es generiert kein binäres PDF auf dem Server. Stattdessen rendert es eine eigenständige HTML-Seite (ohne den Header/Footer des WordPress-Themes), die für die Funktion Drucken → Als PDF speichern des Browsers optimiert ist.

Dieser Ansatz hat zwei praktische Auswirkungen:

  • Die Ausgabe sieht unabhängig vom aktiven Theme identisch aus, da das Theme umgangen wird.
  • Der Browser übernimmt das eigentliche PDF-Rendering. Der Besucher (oder das Team des Autohauses) erstellt das PDF lokal; der Server liefert nur HTML.

Trigger und Routing

  • Die Klasse registriert die öffentliche Abfragevariable as24ci_pdf.
  • Eine template_redirect-Aktion lauscht auf diese Variable. Wenn sie vorhanden ist und zu einem veröffentlichten as24ci_car-Beitrag führt, rendert das Plugin das Datenblatt und ruft exit auf.
  • Der URL-Helper Pdf_Datasheet::get_datasheet_url( $post_id ) gibt home_url( '/?as24ci_pdf=<post_id>' ) zurück. Verwenden Sie diesen Helper, anstatt die URL manuell zu erstellen.

Validierungsregeln:

  • Nicht-numerische IDs oder IDs mit dem Wert Null geben HTTP 400 mit einer übersetzten Meldung „Ungültige Fahrzeug-ID“ zurück.
  • Ein fehlender Beitrag, ein falscher Beitragstyp oder ein nicht veröffentlichter Status gibt HTTP 404 mit einer übersetzten Meldung „Fahrzeug nicht gefunden oder nicht veröffentlicht“ zurück.

Feldauswahl

Pdf_Datasheet::get_allowed_fields() ist die maßgebliche Whitelist der Felder, die auf dem Datenblatt erscheinen dürfen. Jedes Feld, das nicht in der Liste enthalten ist, wird ignoriert, sodass Administratoren keine nicht unterstützten Daten durch Manipulation der gespeicherten Einstellungen anzeigen können.

Derzeit erlaubte Felder:

  • title, price, mileage, first_reg, fuel_type, transmission, power, body_type, exterior_color, doors, seats, emission_class, co2, consumption, equipment, description, location, contact.

Standardwerte werden durch get_default_settings() bereitgestellt und über die dauerhaft gespeicherten PDF-Manager-Einstellungen des Benutzers gelegt, sodass neu hinzugefügte Felder einen sinnvollen Standardwert erhalten.

QR-Code

Pdf_Datasheet::get_qr_image_url( $target_url ) gibt eine QR-Bild-URL zur Einbettung in das Datenblatt zurück. Die Standardimplementierung fordert ein 180×180 PNG vom öffentlichen Dienst goqr.me (https://api.qrserver.com/v1/create-qr-code/) an.

Betriebliche Details:

  • Eine Schutzprüfung gibt eine leere Zeichenfolge zurück, wenn die Ziel-URL autoscout24. enthält, damit der QR-Code niemals versehentlich auf die Detailseite des Quell-Inserats verlinkt.
  • Die Standard-URL kann über as24ci_pdf_qr_image_url gefiltert werden. Geben Sie eine leere Zeichenfolge zurück, um das QR-Bild vollständig zu unterdrücken, oder geben Sie Ihre eigene (selbstgehostete) URL zurück.

Schritt-für-Schritt-Anleitung

So zeigen Sie eine Vorschau eines druckbaren Datenblatts für ein Fahrzeug an:

  1. Suchen Sie das Fahrzeug im WordPress-Adminbereich oder im Frontend.
  2. Öffnen Sie die URL https://example.com/?as24ci_pdf=<post_id> in einem Browser.
  3. Verwenden Sie den Druckdialog des Browsers (Ctrl/Cmd + P), um die Seite als PDF zu speichern oder an einen Drucker zu senden.

So passen Sie die sichtbaren Felder an:

  1. Öffnen Sie den Admin-Tab PDF Manager.
  2. Aktivieren oder deaktivieren Sie die Felder und Branding-Optionen (Logo, Unternehmen, Adresse, Telefon usw.).
  3. Speichern Sie. Die Einstellungen werden in den WordPress-Optionen dauerhaft gespeichert und beim Rendern mit den Standardwerten zusammengeführt.

So ersetzen Sie den QR-Anbieter durch einen selbstgehosteten Generator:

  1. Fügen Sie ein kleines mu-plugin oder ein Theme-Snippet hinzu, das sich in as24ci_pdf_qr_image_url einhakt, den Standardwert ignoriert und Ihre eigene URL zurückgibt.
  2. Überprüfen Sie das Ergebnis in einem Browser, bevor Sie es in der Produktionsumgebung bereitstellen.

Konfigurationsreferenz

Feld-Whitelist: siehe get_allowed_fields() oben. Standardwerte: siehe get_default_settings(). Die genaue Liste der Branding- und Layout-Optionen, die im Admin-Tab des PDF-Managers angezeigt werden, wird serverseitig verwaltet. Überprüfen Sie die aktuellen Optionen im PDF-Manager-Bildschirm, bevor Sie die Dokumentation für Kunden veröffentlichen.

Betriebliche Hinweise

  • Der Renderer gibt vollständiges HTML aus (einschließlich <!DOCTYPE>, <head>, Inline-Styles) und ruft exit auf, um zu verhindern, dass WordPress sein Theme sendet. Jedes Plugin, das sich spät in template_redirect einhakt und nach diesem Punkt in die Antwort schreibt, wird nicht ausgeführt.
  • Da das PDF clientseitig vom Browser generiert wird, hängen Seitennummerierung, Kopf-/Fußzeilen und Papierformat von den Druckeinstellungen des Besuchers ab, nicht vom Plugin.
  • Das QR-Bild wird vom Browser des Besuchers (oder von der Druck-Engine) abgerufen, nicht vom WordPress-Server. Wenn Ihre Datenschutzrichtlinie Drittanbieter-Anfragen in druckbaren Dokumenten verbietet, überschreiben Sie die QR-URL oder unterdrücken Sie sie vollständig über den Filter.
  • Der Endpunkt gibt eine öffentliche HTML-Seite zurück; betten Sie keine vertraulichen Daten in die konfigurierbaren Felder ein.

Fehlerbehebung

  • 404-Seite anstelle des Datenblatts – der Beitrag existiert nicht, hat nicht den Beitragstyp as24ci_car oder ist nicht publish. Überprüfen Sie die ID und den Beitragsstatus.
  • 400 „Ungültige Fahrzeug-ID“ – der in ?as24ci_pdf= übergebene Wert war keine positive Ganzzahl.
  • Theme-Styles wirken sich auf die druckbare Seite aus – der Renderer umgeht das Theme; wenn Sie Theme-Markup sehen, fängt ein anderes Plugin template_redirect vor diesem ab oder die URL wurde nicht erkannt. Überprüfen Sie den URL-Parameter erneut und leeren Sie die Seitencaches.
  • QR-Code fehlt oder ist fehlerhaft – die Ziel-URL enthielt autoscout24. (aus Sicherheitsgründen unterdrückt) oder ein benutzerdefinierter Filter gab eine leere Zeichenfolge zurück. Überprüfen Sie die Ziel-URL und die Filterimplementierung.
  • PDF unterscheidet sich je nach Browser – das Druck-Rendering variiert je nach Browser und Betriebssystem. Standardisieren Sie für kundenorientierte Exporte auf einen Browser/ein Betriebssystem, wenn ein präzises Layout wichtig ist.

Zugehörige Dokumente