Problème avec la génération PDF dans l'API REST

Bonjour,

Nous mettons en place des requêtes utilisant l’API REST de Dolibarr mais avons rencontré un problème lors de la génération PDF.
Dans le fichier « core\lib\pdf.lib.php », sont utilisé par endroit les variables « $pdf->page_largeur », « $pdf->margin_left » et « $pdf->margin_right » qui semble non existantes (« Undefined property: TCPDI::$page_largeur […] on line 1241 » par exemple).

Savez vous d’où vient le problème et comment le corriger ?

Merci

Bonjour,

Il faut changer la configuration du serveur pour qu’il n’affiche pas les erreurs.

Faites une recherche dans le forum avec comme mot clé « warning »

Merci, mais ce n’est pas le genre de solution recherché.
Nous ne voulons pas cacher les erreurs, mais les corriger.

Bonjour,

Cela a été corrigé il y a environ un an

Une mise à jour de Dolibarr devrait faire disparaitre ce warning.

Bonjour,

Merci, mais ce n’est pas le même problème (et nous utilisons bien la dernière version).
Si vous allez dans le fichier « core\lib\pdf.lib.php », fonction « pdf_pagefoot » (ligne 1241), vous avez :
$pdf->writeHTMLCell($pdf->page_largeur - $pdf->margin_left - $pdf->margin_right, $freetextheight, $dims[‹ lm ›], $dims[‹ hk ›] - $marginwithfooter, dol_htmlentitiesbr($line, 1, ‹ UTF-8 ›, 0));

Sauf que $pdf->page_largeur, $pdf->margin_left et $pdf->margin_right ne semble pas reconnu « Undefined property: TCPDI::$page_largeur » « Undefined property: TCPDI::$margin_left » et « Undefined property: TCPDI::margin_right ».

Est-ce que quelqu’un sait d’où vient le problème ? D’où viennent ces variables ?

Merci

Oui effectivement j’ai condondu $page_largeur avec $pdf->page_largeur

Visiblement c’est une erreur dans le fichier pdf.lib.php.

Je n’ai pas regardé tout le code en détail mais la ligne 1241 devrait plutôt ressembler à ça
$pdf->writeHTMLCell($page_largeur - $marge_gauche - $marge_droite, $freetextheight, $dims['lm'], $dims['hk'] - $marginwithfooter, dol_htmlentitiesbr($line, 1, 'UTF-8', 0));

À noter le méli-mélo de noms de variables en français et en anglais, qui est un gros problème de qualité de code de Dolibarr (et à l’origine d’un certain nombre de bugs si on consulte les PR sur github).

Oui, c’est aussi ce qu’on avait pensé, mais la marge droite ne semble pas exister dans cette fonction et la marge gauche est défini comme n’étant plus utilisée dans la définition de la fonction :
@param int $marge_gauche Margin left (no more used)

Quelqu’un a des infos ?
Merci