Documentation · Documentation technique
Notes techniques sur la génération de PDF
Ce document décrit comment le plugin ADP Car Market Hub produit des fiches techniques de véhicules optimisées pour l'impression (« exposés ») que les visiteurs peuvent enregistrer au format PDF à l'aide de la boîte de dialogue d'impression de leur navigateur.
Quand utiliser ce document
Lisez ce document si vous devez :
- Personnaliser les champs qui apparaissent sur la fiche technique imprimable.
- Remplacer la source d'image du code QR par défaut par un générateur auto-hébergé.
- Intégrer un lien vers la fiche technique imprimable d'un véhicule depuis une autre page ou un autre système.
- Diagnostiquer des données manquantes ou incorrectes sur la page imprimable.
Aperçu
La fiche technique PDF est implémentée dans AS24CI\Pdf_Datasheet. Elle
ne génère pas de PDF binaire sur le serveur. À la place, elle
affiche une page HTML autonome (sans l'en-tête/pied de page du thème WordPress)
optimisée pour la fonction Imprimer → Enregistrer au format PDF du navigateur.
Cette approche a deux implications pratiques :
- Le rendu visuel est identique quel que soit le thème actif, car le thème est contourné.
- Le navigateur gère le rendu réel du PDF. Le visiteur (ou l'équipe de la concession) crée le PDF localement ; le serveur ne fait que fournir du HTML.
Déclenchement et routage
- La classe enregistre la variable de requête publique
as24ci_pdf. - Une action
template_redirectécoute cette variable. Lorsqu'elle est présente et correspond à une publicationas24ci_carpubliée, le plugin génère la fiche technique et appelleexit. - L'assistant d'URL
Pdf_Datasheet::get_datasheet_url( $post_id )renvoiehome_url( '/?as24ci_pdf=<post_id>' ). Utilisez cet assistant plutôt que de construire l'URL manuellement.
Règles de validation :
- Les ID non numériques ou égaux à zéro renvoient une erreur HTTP
400avec un message traduit « ID de véhicule non valide ». - Une publication manquante, un type de publication incorrect ou un statut non publié renvoie
une erreur HTTP
404avec un message traduit « Véhicule non trouvé ou non publié ».
Sélection des champs
Pdf_Datasheet::get_allowed_fields() est la liste blanche
autorisée des champs qui peuvent apparaître sur la fiche technique. Tout champ
non présent dans cette liste est ignoré, de sorte que les administrateurs ne peuvent pas afficher
de données non prises en charge en manipulant les réglages enregistrés.
Champs actuellement autorisés :
title,price,mileage,first_reg,fuel_type,transmission,power,body_type,exterior_color,doors,seats,emission_class,co2,consumption,equipment,description,location,contact.
Les valeurs par défaut sont exposées par get_default_settings() et appliquées
sur les réglages persistants du PDF Manager de l'utilisateur, afin que les champs nouvellement ajoutés
reçoivent une valeur par défaut cohérente.
Code QR
Pdf_Datasheet::get_qr_image_url( $target_url ) renvoie une URL
d'image de code QR à intégrer dans la fiche technique. L'implémentation par défaut
demande un PNG de 180×180 au service public goqr.me
(https://api.qrserver.com/v1/create-qr-code/).
Détails opérationnels :
- Une sécurité défensive renvoie une chaîne vide si l'URL cible
contient
autoscout24.afin que le code QR ne pointe jamais accidentellement vers la page de détail de l'annonce source. - L'URL par défaut peut être filtrée via
as24ci_pdf_qr_image_url. Renvoyez une chaîne vide pour masquer complètement l'image du code QR, ou renvoyez votre propre URL (auto-hébergée).
Instructions étape par étape
Pour prévisualiser une fiche technique imprimable pour un véhicule :
- Localisez le véhicule dans l'administration WordPress ou sur le front-end.
- Ouvrez l'URL
https://example.com/?as24ci_pdf=<post_id>dans un navigateur. - Utilisez la boîte de dialogue d'impression du navigateur (
Ctrl/Cmd + P) pour enregistrer la page en PDF ou l'envoyer à une imprimante.
Pour personnaliser les champs visibles :
- Ouvrez l'onglet d'administration PDF Manager.
- Activez ou désactivez les champs et les options de marque (logo, entreprise, adresse, téléphone, etc.).
- Enregistrez. Les réglages sont conservés dans les options WordPress et fusionnés avec les valeurs par défaut lors du rendu.
Pour remplacer le fournisseur de code QR par un générateur auto-hébergé :
- Ajoutez un petit mu-plugin ou un extrait de code de thème qui se connecte à
as24ci_pdf_qr_image_url, ignore la valeur par défaut et renvoie votre propre URL. - Vérifiez le résultat dans un navigateur avant de déployer en production.
Référence de configuration
Liste blanche des champs : voir get_allowed_fields() ci-dessus. Valeurs
par défaut : voir get_default_settings(). La liste exacte des options de marque
et de mise en page exposées dans l'onglet d'administration du PDF Manager est
gérée côté serveur. Vérifiez les options actuelles par rapport à l'écran du
PDF Manager avant de publier la documentation destinée aux clients.
Notes opérationnelles
- Le moteur de rendu génère du HTML complet (y compris
<!DOCTYPE>,<head>, styles en ligne) et appelleexitpour empêcher WordPress d'envoyer son thème. Tout plugin qui se connecte tardivement danstemplate_redirectet écrit dans la réponse après ce point ne s'exécutera pas. - Étant donné que le PDF est généré côté client par le navigateur, la numérotation des pages, les en-têtes/pieds de page et la taille du papier dépendent des réglages d'impression du visiteur, et non du plugin.
- L'image du code QR est récupérée par le navigateur du visiteur (ou par le moteur d'impression), et non par le serveur WordPress. Si votre politique de confidentialité interdit les requêtes tierces dans les documents imprimables, surchargez l'URL du code QR ou masquez-la complètement via le filtre.
- Le point de terminaison renvoie une page HTML publique ; n'intégrez pas de données confidentielles dans les champs configurables.
Dépannage
- Page 404 au lieu de la fiche technique — la publication n'existe
pas, n'est pas du type de publication
as24ci_car, ou n'est paspublish. Vérifiez l'ID et le statut de la publication. - 400 « ID de véhicule non valide » — la valeur transmise dans
?as24ci_pdf=n'était pas un entier positif. - Les styles du thème débordent sur la page imprimable — le moteur de rendu
contourne le thème ; si vous voyez du balisage du thème, un autre plugin
intercepte
template_redirectavant celui-ci ou l'URL n'a pas été détectée. Vérifiez à nouveau le paramètre d'URL et videz les caches de page. - Le code QR est manquant ou cassé — l'URL cible contenait
autoscout24.(masqué par sécurité) ou un filtre personnalisé a renvoyé une chaîne vide. Vérifiez l'URL cible et l'implémentation du filtre. - Le PDF diffère selon les navigateurs — le rendu de l'impression varie selon les navigateurs et les systèmes d'exploitation. Standardisez sur un seul navigateur/système d'exploitation pour les exports destinés aux clients si la précision de la mise en page est importante.