N'hésitez pas à me le signaler si nécessaire via le formulaire de contact.
Une petite note rapide pour donner et historiser une astuce bien pratique dans le cas ou vous souhaitez faire des modifications sur les fichiers pdfs générés par Prestashop dans l’administration.
Ceci concerne tout ceux qui sont générés par le controller : controllers/admin/AdminPdfController.php
- Les factures
- Les livraisons
- Commandes fournisseurs
Par défaut le comportement est que le fichier pdf est téléchargé par le navigateur, ce qui devient relativement pénible lorsque les modifications sont assez lourdes et qu’on doit télécharger pleins de fois le fichier pour voir le résultat.
Pour forcer l’affichage du pdf dans le navigateur il vous suffit de modifier la fonction generatePDF du controller controllers/admin/AdminPdfController.php et de rajouter l’option « I » dans l’appel à la fonction render
public function generatePDF($object, $template) { $pdf = new PDF($object, $template, Context::getContext()->smarty); $pdf->render('I'); //Changement de code ici } |
Le contenu du fichier pdf sera ensuite affiché directement dans le navigateur ce qui fera gagner un temps précieux dans la visualisation des modifications pdf 🙂
Cette astuce a été testée sur une 1.7.4 et une 1.7.6.x
Elle ne fonctionne plus à partir de la version 1.7.7 car cette partie a été réécrite.
Prestashop 1.7.7 et >
Sur cette version il sera nécessaire de faire la même modification (ajout de l’option « I » ) dans la fonction render pour les fichiers suivants
- src/Adapter/PDF/CreditSlipPdfGenerator.php
- src/Adapter/PDF/DeliverySlipPdfGenerator.php
- src/Adapter/PDF/OrderInvoicePdfGenerator.php
- src/Adapter/PDF/PDFGenerator.php
Je précise que ces modifications ne sont pas à livrer mais à faire temporairement pour gagner du temps dans vos développements 😉
Bonjour Hervé,
dans mon module je télécharge mon PDF (facture) dans le dossier download/mymodule
Dès Prestashop 1.7.7.3 il n’est plus possible visualizer mon file en faisant l’override des controllers controllers/admin/AdminPdfController.php et
controllers/front/PdfInvoiceController.php, mais il faut utiliser Symfomy et je ne sais plus quoi fare. Peux-tu m’aider à ce propos? Merci beaucop
Bonjour Davide,
Effectivement cet astuce ne fonctionne plus à partir de la version 1.7.7 de Prestashop.
Je vais rajouter cette information.
Pour l’instant je n’ai pas d’alternative sur cette version.
Cordialement,
Hervé