Jump to content

Modifier classes/PDF.php


omg

Recommended Posts

Aloha Prestashop folks,

Il y a un détail qui m'échappe sur une installation Prestashop.
J'essaie de modifier la facture PDF, pour cela je tape dans le dure du fichier /classes/PDF.php.
Pas très lisible mais quand meme compréhensible.

Mon seul gros hic c'est que je n'arrive pas du tout à voir mes modifs. J'ai même complètement renommé cette classe ainsi que ses méthodes publiques et je n'arrive même pas à casser la génération des PDF de facture ;-) Je génère toujours et encore les mêmes PDF !

Je me dis donc que cette classe doit être cachée/compilée quelque part ? Est-ce que ce serait Smarty qui cache ça également (je pensait que Smarty ne cachait que les templates)
A moins que ce ne soit ailleurs que ça se passe ?

Est-ce que quelqu'un aurait une idée ?

thx

Link to comment
Share on other sites

Merci,

Ce qui m'arrive est alors très très très bizarre ... à en devenir paranoïaque.
Mes modifications dans /classes/PDF.php ne changent rien.
Plus fort, j'ai l'impression que toute modification dans les classes qui sont dans /classes ne sont pas prise en compte !

Je me suis amusé à complètement renommé le répertoire /classes/ et tout marche toujours de façon convenable ...

Quelqu'un aurait une idée miracle ?

Link to comment
Share on other sites

  • 6 months later...

quelque petit truc
ligne 385 dans classes/pdf.php
c'est la que commance livraison et facturation

$pdf->SetFont(self::fontname(), '', 13);
$pdf->Cell($width, 10, self::l('Delivery'), 0, 'L');
$pdf->Cell($width, 10, self::l('Invoicing'), 0, 'L');
$pdf->Ln(6);

"fontname(), '', 13);" c est la taille de la police
$pdf->Ln(6);
l'hauteur de l'espace avec le texte en dessous
après viennent les autres donnée

pour la partie de bas total produit ht etc .. ca commence vers 481
pour ceulle qui veulent ajouter une ligne tva ou taxe seul dans le pdf ajoute ca dans la ligne
488 en dessous de Ln..

$pdf->SetFont(self::fontname(), 'B', 8);
$width = 165;
$pdf->Cell($width, 0, self::l('TVA').' : ', 0, 0, 'R');
$pdf->Cell(0, 0, self::convertSign(Tools::displayPrice($priceBreakDown['totalProductsWithTax'] - $priceBreakDown['totalProductsWithoutTax'], self::$currency, true, false)), 0, 0, 'R');
$pdf->Ln(4);

pour retrouver tout les case allez dans l'admin Outils >> Traductions et copiez le nom anglais a gauche par exemple "Total products (tax incl.)" et faite une recherche dans le fichier pdf

j'espère que ca aidera quelqu'un

Link to comment
Share on other sites

  • 1 month later...

J'en profite pour vous faire part de mes quelques connaissances au sujet du fichier classes/PDF.php que j'ai découvert ce soir, enfin cette nuit grâce à l'excellent site fpdf.org que nombres d'entre vous ont conseillé sur le forum %-P

Pour changer le logo de la facture :

1. Créer le l'image que vous souhaitez à la place de votre logo. Nommez-le monlogo.jpg (par exemple) et placer là sur votre FTP dans le dossier img/

2. Editez le fichier classes/PDF.php :
A la ligne 138 / 139, remplacez le nom de votre fichier monlogo.jpg dans ce code :

if (file_exists(_PS_IMG_DIR_.'/logo.jpg'))
$this->Image(_PS_IMG_DIR_.'/logo.jpg', 10, 12, 0, 26);


Par :

if (file_exists(_PS_IMG_DIR_.'/monlogo.jpg'))
$this->Image(_PS_IMG_DIR_.'/monlogo.jpg', 10, 12, 0, 26);


Pour changer la couleur des cellules ("Facture n°blablabla du", "Description" et le footer qui sont par défaut en gris)

1. Faîtes une recherche avec votre éditeur en cherchant tous les "$this->SetFillColor(255, 255, 255);" (Précision : les chiffres 255 correspondent à la couleur RVB de couleur gris).

2. Trouver la couleur RVB qui vous convient et changer juste ces nombres. Par exemple, le rose que j'utilise dans ma charte graphique est le 226, 105, 159 donc j'ai remplacé "$this->SetFillColor(255, 255, 255);" par "$this->SetFillColor(226, 105, 159);".

Et voilà, avec beaucoup de patience et de temps, le résultat en pièce jointe. Avant/Après !

28356_HoZfQ5R7UmbZQSfij58y_t

  • Like 2
Link to comment
Share on other sites

  • 1 year later...

Bonjour,

 

Je travaille sur la version 1.3.7 de prestashop et des que je modifie la moindre ligne du fichier classes/PDF.php j'ai l'erreur suivante:

FPDF error: Some data has already been output, can't send PDF file.

 

Si j'annule mais modifications et que je renvoie sur le FTP mon fichier, l'erreur persiste... Seule solution renvoyer le fichier originel jamais modifié...

 

J'ai une connaissance sommaire du produit et de php mais suis développeur ASP, Coldfusion donc avec quelques connaissances quand même ;o)

 

Merci pour votre aide !!

Link to comment
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...