FontAwesome 5 et MPdf

FontAwesome 5 et MPdf - PHP - Programmation

Marsh Posté le 24-04-2019 à 16:54:57    

Bonjour,
 
J'utilise FontAwesome 5 (version pro) depuis quelque temps maintenant, ainsi que Mpdf (8.0.0) qui ne me pose pas de souci particulier, excepté un: Je ne parviens pas à intégrer la police FontAwesome dedans…
 
Je suis cette marche à suivre: https://mpdf.github.io/fonts-langua [...] f-7-x.html
Et je n'ai pas de message d'erreur suite à l'ajout de la police ttf (si je me trompe de nom ou de chemin j'ai bien une erreur).
 
Le code que je mets ensuite:
 

Code :
  1. $defaultConfig = (new Mpdf\Config\ConfigVariables())->getDefaults();
  2. $fontDirs = $defaultConfig['fontDir'];
  3. $defaultFontConfig = (new Mpdf\Config\FontVariables())->getDefaults();
  4. $fontData = $defaultFontConfig['fontdata'];
  5. $mpdf = new \Mpdf\Mpdf([
  6.     'fontDir' => array_merge($fontDirs, [
  7.         dirname(__DIR__, 3) . '/config/fonts',
  8.     ]),
  9.     'fontdata' => $fontData + [
  10.             'FALight' => [
  11.                 'R' => 'fa-light-300.ttf',
  12.             ]
  13.         ]
  14. ]);


 
Mais ensuite, impossible de parvenir à un affichage des icônes, dès que je tente de mettre un unicode donné sur le site de FontAwesome, ces essais m'affichent toujours des carrés, alors que devrait s'afficher un croissant:
 

Code :
  1. <p class="FALight">&#xf7f6;</p>
  2. <p style="font-family: FALight;">&#xf7f6;</p>
  3. <i class="fas">&#xf7f6;</i>
  4. <i class="far">&#xf7f6;</i>
  5. <i class="fal">&#xf7f6;</i>


 
Par avance, merci pour votre aide.

Reply

Marsh Posté le 24-04-2019 à 16:54:57   

Reply

Marsh Posté le 24-04-2019 à 17:20:31    

Je ne connaissais pas mpdf mais ça semble être un fork de html2pdf lui même basé sur la tcpdf, donc ma solution pourra peu être te convenir...
 
Personnellement je génères les fichiers nécessaire à tcpdf via ce site : http://fonts.snm-portal.com/
Puis je le mets dans le dossier /font/ de la tcpdf et ensuite :

Code :
  1. $html2pdf = new HTML2PDF('P', array(200,280), 'fr', true, 'UTF-8', array(0, 0, 0, 0));
  2. $html2pdf->pdf->SetDisplayMode('fullpage');
  3. $html2pdf->pdf->SetAutoPageBreak(false, 0);
  4. $html2pdf->AddFont('matypo', '', 'matypo.php');
  5. $html2pdf->AddFont('matypob', 'B', 'matypob.php');
  6. $html2pdf->setDefaultFont('matypo');
  7. $html2pdf->WriteHTML($content);
  8. $html2pdf->Output('mon-fichier.pdf', 'D');


https://tcpdf.org/docs/fonts/
 


---------------
D3
Reply

Marsh Posté le 25-04-2019 à 09:06:10    

Bonjour,
 
La solution que vous donnez ne fonctionne pas pour mpdf… mais elle m'a servi à trouver l'erreur que je faisais et ça fonctionne grâce à vous, merci! :)
 
Il me semblait qu'il était possible de donner le nom qu'on voulait à la police importée, je l'avais donc appelée "FALight" que vous avez pu le voir.
Grâce à l'url que vous m'avez donné j'ai vu que son vraie nom était "fontawesome5prolight", j'ai donc juste changé les noms et ça roule.
 
Donc pour le complet:
 

Code :
  1. $defaultConfig = (new Mpdf\Config\ConfigVariables())->getDefaults();
  2. $fontDirs = $defaultConfig['fontDir'];
  3. $defaultFontConfig = (new Mpdf\Config\FontVariables())->getDefaults();
  4. $fontData = $defaultFontConfig['fontdata'];
  5. $mpdf = new \Mpdf\Mpdf([
  6.     'fontDir' => array_merge($fontDirs, [
  7.         dirname(__DIR__, 3) . '/config/fonts',
  8.     ]),
  9.     'fontdata' => $fontData + [
  10.             'fontawesome5prolight' => [
  11.                 'R' => 'fa-light-300.ttf',
  12.             ]
  13.         ]
  14. ]);


 
Et dans mon Template PDF:
 

Code :
  1. <p style="font-family: fontawesome5prolight">&#xf7f6;</p>';">


 
Et j'ai mon croissant.
 
Merci!


Message édité par Furaxx le 25-04-2019 à 09:06:55
Reply

Marsh Posté le 13-06-2019 à 14:12:41    

Furaxx a écrit :

Bonjour,
 
J'utilise FontAwesome 5 (version pro) depuis quelque temps maintenant, ainsi que Mpdf (8.0.0) qui ne me pose pas de souci particulier, excepté un: Je ne parviens pas à intégrer la police FontAwesome dedans…
 
Je suis cette marche à suivre: https://mpdf.github.io/fonts-langua [...] f-7-x.html
Et je n'ai pas de message d'erreur suite à l'ajout de la police ttf (si je me trompe de nom ou de chemin j'ai bien une erreur).
 
Le code que je mets ensuite:
 

Code :
  1. $defaultConfig = (new Mpdf\Config\ConfigVariables())->getDefaults();
  2. $fontDirs = $defaultConfig['fontDir'];
  3. $defaultFontConfig = (new Mpdf\Config\FontVariables())->getDefaults();
  4. $fontData = $defaultFontConfig['fontdata'];
  5. $mpdf = new \Mpdf\Mpdf([
  6.     'fontDir' => array_merge($fontDirs, [
  7.         dirname(__DIR__, 3) . '/config/fonts',
  8.     ]),
  9.     'fontdata' => $fontData + [
  10.             'FALight' => [
  11.                 'R' => 'fa-light-300.ttf',
  12.             ]
  13.         ]
  14. ]);


 
Mais ensuite, impossible de parvenir à un affichage des icônes, dès que je tente de mettre un unicode donné sur le site de FontAwesome, ces essais m'affichent toujours des carrés, alors que devrait s'afficher un croissant:
 

Code :
  1. <p class="FALight">&#xf7f6;</p>
  2. <p style="font-family: FALight;">&#xf7f6;</p>
  3. <i class="fas">&#xf7f6;</i>
  4. <i class="far">&#xf7f6;</i>
  5. <i class="fal">&#xf7f6;</i>


 
Par avance, merci pour votre aide.


 
:hello:
 
Bonjour, je voulais savoir si Mpdf fonctionne un peu comme un framework PHP? Si non quel est l'avantage de l'utiliser?


Message édité par youssoupho le 02-09-2019 à 14:49:21
Reply

Marsh Posté le 13-06-2019 à 16:58:04    

Non https://mpdf.github.io/ n'est pas un Framework (comme Symfony ou Zend), c'est juste une classe PHP pour convertir du contenu html en pdf.
Il en existe d'autres comme https://html2pdf.fr/fr/home
 
L'avantage de l'utiliser c'est qu'avant on n'avait que la http://www.fpdf.org/ et on était obligé de calculer la taille des blocs de texte, faire les sauts de page à la main etc.
Les mises en page un tant soit peu joli était extrêmement compliqué à réaliser...


---------------
D3
Reply

Marsh Posté le 14-06-2019 à 10:10:21    

mechkurt a écrit :

Non https://mpdf.github.io/ n'est pas un Framework (comme Symfony ou Zend), c'est juste une classe PHP pour convertir du contenu html en pdf.
Il en existe d'autres comme https://html2pdf.fr/fr/home
 
L'avantage de l'utiliser c'est qu'avant on n'avait que la http://www.fpdf.org/ et on était obligé de calculer la taille des blocs de texte, faire les sauts de page à la main etc.
Les mises en page un tant soit peu joli était extrêmement compliqué à réaliser...


Le temps que j'ai passé oui :lol:
SetY, SetXY, Multicell :mad:
 

Reply

Marsh Posté le 19-06-2019 à 12:02:09    

C'est clair que j'ai passé aussi du temps là dessus…
 
Après Mpdf est encore loin d'être parfait et il ne faut pas aller trop loin niveau CSS sinon il est vite perdu mais ça permet d'avoir des documents "simples" très rapidement.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed