THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline

#1 Image dans PDF invoice

(01-10-2019 15:58:44)


Bonjour à tous,

J'ai créé mon propre template pour cela avec le logo dans  "pdf/montemplate/assets/img/logo-xxxx-pdf.jpg".

Pour avoir un logo dans le pdf invoice, j'ai mis un superbe :

<img src="{image file='assets/img/logo-xxxx-pdf.jpg'}">

Cela marche en local ( wamp ) mais pas sur le serveur de test.

Sur le serveur de test, j'obtiens l'erreur :

TheliaProcessException in BaseController.php line 306:
Nous sommes désolé, cette facture n'est pas disponible pour le moment

Si je met :

{image file='assets/img/logo-xxxx-pdf.jpg'}

Le pdf s'affiche. Il y a un lien cliquable qui ouvre l'image.

Merci d'avance de votre aide.

Offline

#2 Re: Image dans PDF invoice

(01-10-2019 18:01:55)


Si l'accès au serveur de test est protégé (Basic Auth Apache, par exemple), ça pose un problème à html2pdf, car il fait une requête au serveur pour obtenir l'image.

Pour résoudre ce problème, il faut laisser html2pdf faire la requête, et donc ajouter une exception à l'authentification pour la machine locale (127.0.0.1). Exemple pour Apache 2.4 :

AuthUserFile /path/to/.htpasswd
AuthName "Restricted Access"
AuthType Basic
Require ip 127.0.0.1
Require valid-user

OpenStudio Toulouse

Offline

#3 Re: Image dans PDF invoice

(02-10-2019 14:05:39)


Merci.
Cela ne semble pas être le problème.
Nous allons faire un essai sur un autre serveur.

Offline

#4 Re: Image dans PDF invoice

(02-10-2019 14:55:14)


Disons que l'idée de base est de voir si l'URL générée dans le code source HTML du fichier PDF est accessible.


OpenStudio Toulouse

Offline

#5 Re: Image dans PDF invoice

(02-10-2019 15:17:50)


Lorsque je met juste le lien de l'image, celui-ci est cliquable et l'image apparaît dans le navigateur....

Je pensais avoir trouvé une piste ici : https://forum.thelia.net/viewtopic.php?pid=75027#p75027 ;-) Mais notre réglage est bon.

Bref, on verra lorsque l'on installera tout ça sur le le serveur de recette chez notre client. Qui sait, ça marchera peut être !!!! Si ça marche pas, on fera une enquête approfondie à ce moment là avec les techniciens en charge du serveur. En attendant, et bien, les pdf n'auront pas de logo.

Encore merci Roaster !

Offline

#6 Re: Image dans PDF invoice

(02-10-2019 16:59:52)


Pour débugger ce genre de problèmes, je fais un echo du html généré suivi d'un exit juste avant le dispatching de TheliaEvents::GENERATE_PDF, ça permet de voit le doc dans le navigateur, et de constater de visu les éventuels problèmes :

        $html = $this->renderRaw(
            $fileName,
            array(
                'order_id' => $order_id
            ),
            $this->getTemplateHelper()->getActivePdfTemplate()
        );

// Affichage du doc généré 
echo $html;
exit;

        try {
            $pdfEvent = new PdfEvent($html);

            $this->dispatch(TheliaEvents::GENERATE_PDF, $pdfEvent);

            if ($pdfEvent->hasPdf()) {
                return $this->pdfResponse($pdfEvent->getPdf(), $order->getRef(), 200, $browser);
            }

Ça ne marche qu'en mode dev.

Tu peux aussi jeter un œil dans le  log Thelia, le détail de l'exception s'y trouve.


OpenStudio Toulouse

Offline

#7 Re: Image dans PDF invoice

(04-10-2019 12:46:54)


Merci pour l'astuce !
Je fini d'autres choses et je m'y remet.

Offline

#8 Re: Image dans PDF invoice

(25-08-2020 09:09:26)


Pour info, en mettant un {declare_assets directory="assets"} sous {default_translation_domain domain='pdf.template'} au début du template du pdf ça s'est mis à marcher. J'ai aussi vidé le cache.

En espérant que ça aide.