Jump to content
Julio_EH

[RESOLU] Personnalisation de la facture : Comment agrandir le header pour un logo plus haut ?

Recommended Posts

Bonjour tout le monde,

 

Je suis en train de personnaliser la facture, et je souhaite entre autres utiliser un logo plus haut que ce qui est prévu initialement par prestashop.

 

J'ai copié le fichier pdf/header.tpl dans montheme/pdf/header.tpl, pour surcharger et non modifier directement le fichier d'origine. Puis, à la place de (ligne 29) :

<img src="{$logo_path}" style="width:{$width_logo}px; height:{$height_logo}px;" />

j'ai mis :

<img src="entete_facture.jpg" width="827" height="236" />

(le code est en dur et je ne passe pas volontairement par l'administration pour gérer le logo)

 

Mon logo s'affiche comme souhaité, mais il est plus haut que la taille prévu initialement par prestashop, donc l'adresse de livraison se retrouve à cheval sur mon logo.

 

De la même manière, j'ai un footer plus haut, avec le nom de la boutique,l'adresse etc, et un QRcode. Du coup, si la liste des produits achetés est longue, elle passe sous mon QRcode.

 

J'ai l'impression que la dimension du header et du footer (peut être même du contenu principal) est définie en dur quelque part (peut être dans tools/tcpdf/tcpdf.php), mais je ne parviens pas à mettre la main dessus.

 

Si quelqu'un a une idée je suis preneur.

 

Merci d'avance,

Julien

Edited by Julio_EH (see edit history)

Share this post


Link to post
Share on other sites

Ok, apparement dans /classes/pdf/PDFgenerator.php à la ligne 155 il y a ceci :

 

$this->setMargins(10, 40, 10);

 

Le premier chiffre correspond à la marge de gauche, le second à la marge du haut, et le troisième à la marge de droite.

 

J'ai donc fait un override de cette classe et j'ai modifié de la façon suivante :

$this->setMargins(10, 60, 10);

 

Concernant le pied de page, juste en dessous vous trouverez cette ligne :

$this->SetAutoPageBreak(true, PDF_MARGIN_BOTTOM);

Sauf que le PDF_MARGIN_BOTTOM est défini dans tools/tcpdf/config/tcpdf_config.php que l'on ne peut donc pas overrider (du moins je crois). J'ai donc modifié la valeur directement dans l'override de ma classe PDFgenerator.php en espérant que PDF_MARGIN_BOTTOM n'est pas appelé ailleurs :

$this->SetAutoPageBreak(true, 50);

 

Sinon, je suis tombé sur ce post où en fait l'auteur supprime carrément le contenu du header.tpl, et le recopie dans invoice.tpl . Pourquoi pas, mais à condition de recopier le header.tpl dans les autres templates aussi (delivery-slip.tpl, etc) : http://www.prestashop.com/forums/topic/213664-guide-modifying-prestashop-15-invoice-template/page__st__20

Share this post


Link to post
Share on other sites

Bonjour Julio,

Merci pour l'info.

J'ai juste un question qui est, pourquoi les développeurs de chez presta ne suivent jamais les conventions du code ?
La première valeur déclaré quand on parle de propriété CSS c'est le TOP ! Et ça tourne dans le sens des aiguilles d'une montre (top, right, bottom, left) pas left top right sans bottom !

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More