8768 sujets

Développement web côté serveur, CMS

Bonjour à tous,
J'essaie d'utiliser fpdf pour une webapplication perso en suivant un tuto sur Youtube mais je bloque dès le début ! y compris en faisant un copier/coller du tutoriel 1 du site fpdf !
Un message apparaît :
Fatal error: Uncaught Exception: FPDF error: Could not include font definition file in /homepages/28/d184929988/htdocs/gestion/fpdf/fpdf.php:271 Stack trace: #0 /homepages/28/d184929988/htdocs/gestion/fpdf/fpdf.php(1143): FPDF->Error('Could not inclu...') #1 /homepages/28/d184929988/htdocs/gestion/fpdf/fpdf.php(459): FPDF->_loadfont('OpenSans-Light....') #2 /homepages/28/d184929988/htdocs/gestion/contrat-imprimer.php(42): FPDF->AddFont('opensans-light', '', 'OpenSans-Light....') #3 {main} thrown in /homepages/28/d184929988/htdocs/gestion/fpdf/fpdf.php on line 271


Si j'utilise la version de la bibliothèque fpdf proposé par le tuto Youtube (1.81 selon les log) tout fonctionne.
Si j'utilise la même version 1.81 proposée sur le site fpdf.org, le message d'erreur réapparaît, idem avec les versions plus récentes !

Quelqu'un a-t-il une idée pour régler ce problème ?
Merci d'avance !
(Les paramètres de la commande SetFont ne sont pas sensible à la casse selon la doc du site fpdf).


        require('fpdf/fpdf.php');
        // P = Portrait     mm = milimètres  A4 = format de page       
        $pdf = new FPDF('P','mm','A4');        
        // Création de la première page :
        $pdf->AddPage();
        $pdf->SetAutoPageBreak(0,1);
        // Déclaration des polices utilisées :
        $pdf->AddFont('OpenSans-Light','','OpenSans-Light.php');
        $pdf->AddFont('OpenSans-SemiBold','','OpenSans-SemiBold.php'); 
        // ------------------------ LOGOS --------------------------------------------        
        $pdf->Image('../images/logoweb_3.png',5,3,65);        
        $pdf->Image('../images/photo.jpg',160,6,45);        
        // ------------------------ INFOS STÉ ----------------------------------     
        $pdf->SetFont('OpenSans-Light','',9);        
        $pdf->SetY(28);
        $pdf->Write(4,utf8_decode('Test'));



EDIT : Je viens de refaire tous mes fichiers de fonts avec le Font File Generation du site fpdf. Ils sont tous en minuscules, sans espaces (opensanssemibold.php), et j'ai renommé toutes les syntaxes appelantes ($pdf->AddFont('opensanssemibold','','opensanssemibold.php');) et j'ai toujours le même problème !
Modifié par etienne69 (03 Mar 2022 - 15:18)
Salut,

Si tu compare les 2 arborescences il ne manque pas de dossier / fichier ?
Il n'y a pas de problème de droit non plus ?
Salut

AddFont permet d'ajouter ton fichier local FONT à FPFD, si tu n'a pas le fichier alors forcement ça pète une erreur ou alors si tu as vraiment ton fichier font en local ET au bon format, alors il faut définir le path
define('FPDF_FONTPATH','/home/www/font');
Modifié par JENCAL (03 Mar 2022 - 16:00)
Meilleure solution
Mathieuu a écrit :
Salut,

Si tu compare les 2 arborescences il ne manque pas de dossier / fichier ?
Il n'y a pas de problème de droit non plus ?


Bonjour Mathieuu,
Quand j'upload sur le serveur (local ou Ionos) la bibliothèque fpdf du site fpdf.org (répertoire complet + mes polices créées avec le générateur du site fpdf) j'ai le message d'erreur...
Quand j'efface ce répertoire fpdf pour uploader à la même place celui trouvé ici ça fonctionne sans toucher une seule virgule de mon code !
JENCAL a écrit :

...alors il faut définir le path
define('FPDF_FONTPATH','/home/www/font');


Salut,

J'ai essayé ça :

        define('FPDF_FONTPATH','fpdf/font');
        require('fpdf/fpdf.php');
        // P = Portrait     mm = milimètres  A4 = format de page       
        $pdf = new FPDF('P','mm','A4');        
        // Création de la première page :
        $pdf->AddPage();
        $pdf->SetAutoPageBreak(0,1);
        // Déclaration des polices utilisées : 
        $pdf->AddFont('OpenSans-Light','','OpenSans-Light.php');
        $pdf->AddFont('OpenSans-SemiBold','','OpenSans-SemiBold.php');



Et ça :

        require('fpdf/fpdf.php');
        // P = Portrait     mm = milimètres  A4 = format de page       
        $pdf = new FPDF('P','mm','A4');        
        // Création de la première page :
        $pdf->AddPage();
        $pdf->SetAutoPageBreak(0,1);
        // Déclaration des polices utilisées :
        $pdf->fontpath = 'fpdf/font'
        $pdf->AddFont('OpenSans-Light','','OpenSans-Light.php');
        $pdf->AddFont('OpenSans-SemiBold','','OpenSans-SemiBold.php'); 


Ça ne fonctionne toujours pas...


Le truc dingue c'est ça :
etienne69 a écrit :

Quand j'upload sur le serveur (local ou Ionos) la bibliothèque fpdf du site fpdf.org (répertoire complet + mes polices créées avec le générateur du site fpdf) j'ai le message d'erreur...
Quand j'efface ce répertoire fpdf pour uploader à la même place celui trouvé ici ça fonctionne sans toucher une seule virgule de mon code !




Ce qui est incompréhensible c'est aussi de faire un copier/coller du tuto 1 de fpdf.org et d'avoir ce message d'erreur en essayant Hello World !!!
Modifié par etienne69 (04 Mar 2022 - 09:46)
Je viens de télécharger une nouvelle fois la dernière version de fpdf, j'ai refait mes fichiers de polices depuis le générateur en ligne et ajouté la commande proposée par JENCAL à savoir :
define('FPDF_FONTPATH','fpdf/font');
Et ça fonctionne !!!!!

Impossible d'expliquer ce qui s'est passé !
Impossible de comprendre pourquoi sur le site de fpdf ils n'indiquent pas en gros et en rouge
sur leur première page d'inclure cette commande, cela ferait gagner beaucoup de temps aux utilisateurs !!!!!

Merci à vous deux pour votre patience !
Modifié par etienne69 (04 Mar 2022 - 11:52)