Bonjour,
Pour produire des PDF dynamiques en PHP, j'utilise toujours la librairie FPDF
Qui n'est pas des plus récentes...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 /******************************************************************************* * FPDF * * * * Version : 1.6 * * Date : 2008-08-03 * * Auteur : Olivier PLATHEY * *******************************************************************************/
Je viens de la déployer, sur mon VPS chez OVH, et obtiens une erreur cannot call constructor
En effet, dans chaque PDF dynamique, je dois créer une classe, qui hérite de FPDF
Dont le constructeur appelle
Le paramètre 'P' indique qu'on crée un PDF en orientation portrait.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public function __construct($pTitre, $pBordure) { parent::__construct('P'); // Ca bogue ici $this->titre = $pTitre; $this->bordure = $pBordure; $this->setDrawColor(192, 192, 192); }
Ca a toujours bien marché avec mon PHP Version 7.0.33-0ubuntu0.16.04.16
Mais sur mon VPS, c'est PHP Version 8.0.8
En ouvrant ma librairie, je découvre qu'elle n'a pas de constructor, mais une fonction homonyme qui en tient lieu, comme en Java
J'improvise donc un constructeur, qui résout le problème, mais ça plante un peu plus loin.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 // Constructeur improvisé public function __construct($orientation='P', $unit='mm', $format='A4') { $this->FPDF($orientation, $unit, $format); } // Constructeur initial function FPDF($orientation='P', $unit='mm', $format='A4') { //Some checks $this->_dochecks(); ... }
Alors, plutôt que de bricoler une vieille librairie, pour la faire avaler à PHP 8, je me demande si je ne ferais pas mieux d'en installer une plus récente.
Qui, de surcroît, pourrait aussi permettre de dessiner des graphiques, schémas SVG, importer des images.
Ce que je n'ai jamais su faire en PHP sur un PDF avec FPDF
Jusqu'à présent, je ne peux y produire que du texte et des tableaux de chiffres, dans des $lePdf->Cell(...).
Quelqu'un pourrait-il me dire quelle est, actuellement, la meilleure librairie PHP permettant de produire dynamiquement des PDF ?
Merci,
Christian.
------------------------
Voilà, j'ai résolu le problème.
Le constructeur improvisé révèle un autre bug, plus loin, à la ligne 1567
dans la fonction putimages(), each() n'est plus supporté par PHP 8.0
Il faut faire
Et ça marche !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 //while(list($file,$info)=each($this->images)) foreach($this->images as $file=>$info)
PHP 8.0 accepte maintenant ma librairie FPDF.
Les PDF sortent normalement sur mon VPS en PHP 8.0 avec la librairie FPDF
Mais je voudrais tout de même trouver quelque chose de plus récent.
Merci.
Partager