Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
396 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  FontAwesome 5 et MPdf

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

FontAwesome 5 et MPdf

n°2332341
Furaxx
Posté le 24-04-2019 à 16:54:57  profilanswer
 

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.

mood
Publicité
Posté le 24-04-2019 à 16:54:57  profilanswer
 

n°2332345
mechkurt
Posté le 24-04-2019 à 17:20:31  profilanswer
 

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
n°2332371
Furaxx
Posté le 25-04-2019 à 09:06:10  profilanswer
 

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
n°2335095
youssoupho
Vraincre ou mourir
Posté le 13-06-2019 à 14:12:41  profilanswer
 

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.


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

n°2335118
mechkurt
Posté le 13-06-2019 à 16:58:04  profilanswer
 

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
n°2335166
skylight
Made in France.
Posté le 14-06-2019 à 10:10:21  profilanswer
 

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:
 

n°2335466
Furaxx
Posté le 19-06-2019 à 12:02:09  profilanswer
 

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.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  FontAwesome 5 et MPdf

 

Sujets relatifs
Plus de sujets relatifs à : FontAwesome 5 et MPdf


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR