Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Symfony 5] DomPdf font family

Sujet résolu
    17 février 2024 à 13:44:55

    Bonjour, 

    j'ai une application Symfony 5 qui génère des PDF avec DomPDF à partir d'une vue html.

    J'ai importé une font dans ma vue :

    @font-face {
        font-family: Description;
        src: url("{{ site_url }}/fonts/Helvetica Neue LT Std 45 Light.otf") format('truetype')
    }
    header .block-right2 .description {
        font-size: 15pt;
        line-height: 20pt;
        font-family: Description!important;
    }

    Problème mon texte qui possède la classe description s'affiche bien avec ma police, mais les mots et les lettres sont séparés par un grand espace. J'ai essayé avec un letter-spacing: -1px; mais rien ne change.

    Merci de votre aide




    -
    Edité par romsVLM 20 février 2024 à 16:14:01

    • Partager sur Facebook
    • Partager sur Twitter
      19 février 2024 à 10:33:30

      Salut, c'est pas le  
       line-height: 20pt;

      qui te pose problème ?
      • Partager sur Facebook
      • Partager sur Twitter

      While(true)

        19 février 2024 à 12:09:41

        Bonjour,

        hélas on ne voit pas ton image, le forum est un peu capricieux. Peux-tu la réuploader ?

        • Partager sur Facebook
        • Partager sur Twitter

        Pas d'aide concernant le code par MP, le forum est là pour ça :)

          20 février 2024 à 16:15:49

          Bonjour, non ça ne change rien de supprimer le line-height.

          Je viens de reuploader la capture d'écran :

          Voici la police que je récupère :

          https://freefonts.co/fonts/helvetica-neue-lt-std-45-light


          [EDIT] j'ai réussi à obtenir ça en ajoutant ceci :

          header .block-right2 .description {
                          font-size: 15pt;
                          line-height: 20pt;
                          letter-spacing: -8px;
                          word-spacing: -6px;
                          font-family: Description!important;
                      }

          C'est mieux mais ce n'est pas parfait, il y a des fois des gros écart entre certaines lettres. Je ne comprends pas pourquoi...

          -
          Edité par romsVLM 20 février 2024 à 16:34:06

          • Partager sur Facebook
          • Partager sur Twitter
            20 février 2024 à 17:16:22

            Et si tu ne mets pas la police Description, ça se passe comment ?
            • Partager sur Facebook
            • Partager sur Twitter

            Pas d'aide concernant le code par MP, le forum est là pour ça :)

              20 février 2024 à 17:23:51

              Lamecarlate a écrit:

              Et si tu ne mets pas la police Description, ça se passe comment ?

              Dans la même veine j'ai trouvé ceci

              https://stackoverflow.com/questions/74866623/dompdf-rendering-spaces-incorrectly-with-custom-font

              Il propose d'essayer ceci

              $dompdf = new Dompdf(["IsFontSubsettingEnabled" => false]);




              • Partager sur Facebook
              • Partager sur Twitter

              While(true)

                21 février 2024 à 9:06:11

                @Lamecarlate Si je fais ceci :

                            header .block-right2 .description {
                                font-size: 15pt;
                                line-height: 20pt;
                                /*letter-spacing: -8px;
                                word-spacing: -6px;
                                font-family: Description!important;*/
                            }

                j'obtiens ça :

                Ma police est donc pas appliquée.

                @Warps73 Oui j'ai déjà bien cherché sur le net, j'ai déjà essayé cette solution, mais ça ne change rien

                • Partager sur Facebook
                • Partager sur Twitter
                  21 février 2024 à 11:13:28

                  1) Est-ce que cette police est absolument essentielle pour ton rendu ?

                  2) Tu as essayé aussi la proposition de Warps73 avec cette syntaxe :

                  $dompdf->set_option('isFontSubsettingEnabled', FALSE);

                  3) Est-ce que tu as le même problème avec une autre police, par exemple https://www.fontsquirrel.com/fonts/acherus-grotesque ? En effet, Helvetica Neue est tout sauf gratuite. Si ça se trouve, le site où tu l'as trouvée fournit un mauvais fichier de police, pas bien configuré (je ne m'y connais pas assez pour juger, cependant).

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Pas d'aide concernant le code par MP, le forum est là pour ça :)

                    21 février 2024 à 18:44:13

                    1) Oui absolument

                    2) Oui

                    3) en fait peut importe la police que je met via @font-face, j'obtiens la même police à chaque fois comme sur mes images précédentenes :

                    @font-face {
                                    font-family: Description;
                                    src: url("D:\wamp64\www\hexcel\public\fonts\Helv_Children.otf") format('truetype');
                                }

                    ou via 

                                @font-face {
                                    font-family: Description;
                                    src: url("{{ site_url }}/fonts/Helv_Children.otf") format('truetype');
                                }


                    Par contre si je met ceci :

                    <link rel="preconnect" href="https://fonts.googleapis.com">
                            <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
                            <link href="https://fonts.googleapis.com/css2?family=Kode+Mono:wght@400..700&display=swap" rel="stylesheet">

                    avec ce css :

                    header .block-right2 .description {
                                    font-size: 15pt;
                                    line-height: 20pt;
                                    font-family: "Kode Mono", monospace;
                                }

                    La police Kode Mono de Google Fonts est bien affiché sur mon PDF.

                    Je me demande donc si le problème viendrait pas de mon @font-face et du chemin vers la font. J'ai essayé les 2 méthodes via {{ site_url }} ou directement via le chemin absolu. 


                    • Partager sur Facebook
                    • Partager sur Twitter
                      21 février 2024 à 22:07:47

                      Avec Symfony, il n'y a pas un système d'assets ? Si tu charges ta page dans un navigateur au lieu d'en faire un pdf, il se passe quoi ?
                      • Partager sur Facebook
                      • Partager sur Twitter

                      Pas d'aide concernant le code par MP, le forum est là pour ça :)

                        22 février 2024 à 9:19:10

                        Problème résolu en utilisant la lib load_font.php

                        Merci pour votre aide

                        -
                        Edité par romsVLM 22 février 2024 à 16:10:13

                        • Partager sur Facebook
                        • Partager sur Twitter

                        [Symfony 5] DomPdf font family

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        • Editeur
                        • Markdown