Symfony : Dompdf gestion caractère

Par alali, il y a 2 ans


Bonjour à tous,
Mon fichier rapport s'affiche correctement sur mon ordinateur portable, mais sur ordinateur bureau, j'ai comme erreur : Échec de chargement du document PDF.
En cherchant la cause, je constate que le problème se situe au niveau des caractères à afficher.
voici les données qui créees le problème.

<tr> <td><h6>{{Affaire.DOS_NUM}}</h6></td> <td><h6>{{Affaire.AFF_NUM}}</h6></td> <td><h6>{{Affaire.SOUAFF_NUM}}</h6></td> <td><h6>{{Affaire.SOUAFF_NOMINCULP|raw}}</h6></td> <td> <h6> {% if Affaire.SOUAFF_TYPEDETENTION %} Detenu {% else %} Non detenu {% endif %} </h6> </td> <td><h6>{{Affaire.SOUAFF_DATE|date('d-m-Y')}}</h6></td> <td><h6>{{Affaire.SOUAFF_DATE_FIN|date('d-m-Y')}}</h6></td> <td><h6>{{Affaire.SOUAFF_NATUREAFFAIRE|raw }}</h6></td> <td><h6>{{Affaire.SOUAFF_DATEACTE|date('d-m-Y')}}</h6></td> <td><h6>{{Affaire.SOUAFF_NATUREACTE|raw }}</h6></td> <td><h6>{{Affaire.SOUAFF_OBSERVATION|raw }}</h6></td> <td><h6>{{Affaire.OBSR_OBSERVATION_ATTRIBUTION|raw }}</h6></td> </tr>

aidez moi à trouver une solution au problème.

mon fichier controller

/** * @Route("/cst/reporting/Not", name="reporting") */ public function Notice(EntityManagerInterface $manager, request $request) { $NameFille = "Repport_notice.pdf"; $Annee = $request->request->get('annee'); $Mois = $request->request->get('mois'); $repositoryAnnees = $manager->getRepository(Annee::class); $Annees = $repositoryAnnees->findBy(['id' => $Annee]); $repositoryMois = $manager->getRepository(Mois::class); $Moiss = $repositoryMois->findBy(['id' => $Mois]); $repositoryNot = $manager->getRepository(Not::class); $Nots = $repositoryNot->findBy(['ANNEE_ID' => $Annee, 'MOI_ID' => $Mois]); $AffairesNots = $repositoryNot->Reporting(); $pdfOptions = new Options(); $pdfOptions->set('defaultFont', 'Arial'); $dompdf = new Dompdf($pdfOptions); $html = $this->renderView('csm_reporting/Notice.html.twig', [ 'Annees' => $Annees[0]->getANLIBELLE(), 'Moiss' => $Moiss[0]->getMOILIBELLE(), 'Nots' => $Notices, 'AffairesNots' => $AffairesNots, ]); $dompdf->loadHtml($html); $dompdf->setPaper('A4', 'landscape'); $dompdf->render(); $dompdf->stream($NameFille, [ "Attachment" => false ]); return new Response('', 200, [ 'Content-Type' => 'application/pdf', ]); }

mon fichier twig

{% for Not in Nots %} <h5 class="card-title">NOTICE : <b>{{Not.getNOTLIBELLE()}}&nbsp;&nbsp;&nbsp;CABINET D'INSTRUCTION : {{Not.getCABID()}}</b></h5> <div class="table-responsive"> <table> <thead> <tr> <th rowspan="2"><center>N° DOS</center></th> <th colspan="2"><center>N°AFFAIRES</center></th> <th rowspan="2"><center>INCULPE</center></th> <th rowspan="2"><center>DETENTION</center></th> <th rowspan="2"><center>DATES FAIT</center></th> <th rowspan="2"><center>DATE DU REQUISITOIRE</center></th> <th rowspan="2"><center>NATURE AFFAIRE</center></th> <th rowspan="2"><center>DATE ACTE</center></th> <th rowspan="2"><center>NATURE ACTE</center></th> <th colspan="2"><center>OBSERVATION</center></th> </tr> <tr> <th><center>N°AFF</center></th> <th><center>N°SOUS A</center></th> <th><center>JUG.</center></th> <th><center>CSM</center></th> </tr> </thead> <tbody> {% for Affaire in AffairesNots %} {% if Not.getId()== Affaire.id %} <tr> <td><h6>{{Affaire.DOS_NUM}}</h6></td> <td><h6>{{Affaire.AFF_NUM}}</h6></td> <td><h6>{{Affaire.SOUAFF_NUM}}</h6></td> <td><h6>{{Affaire.SOUAFF_NOMINCULP|raw}}</h6></td> <td> <h6> {% if Affaire.SOUAFF_TYPEDETENTION %} Detenu {% else %} Non detenu {% endif %} </h6> </td> <td><h6>{{Affaire.SOUAFF_DATE|date('d-m-Y')}}</h6></td> <td><h6>{{Affaire.SOUAFF_DATE_FIN|date('d-m-Y')}}</h6></td> <td><h6>{{Affaire.SOUAFF_NATUREAFFAIRE|raw }}</h6></td> <td><h6>{{Affaire.SOUAFF_DATEACTE|date('d-m-Y')}}</h6></td> <td><h6>{{Affaire.SOUAFF_NATUREACTE|raw }}</h6></td> <td><h6>{{Affaire.SOUAFF_OBSERVATION|raw }}</h6></td> <td><h6>{{Affaire.OBSR_OBSERVATION_ATTRIBUTION|raw }}</h6></td> </tr> {% endif %} {% endfor %} </tbody> </table> </div> {% endfor %}

Ce que je veux

Décrivez ce que vous cherchez à obtenir.

Ce que j'obtiens

Décrivez vos éventuelles erreurs ou ce que vous obtenez à la place de ce que vous attendez :(

1 réponse

alali, il y a 2 ans

j'ai trouvé la solution en ajoutant ceci à mon CSS

* { font-family: DejaVu Sans, sans-serif; }

si vous n'avez pas de css faites ceci :

<style> * { font-family: DejaVu Sans, sans-serif; } </style>