2015-05-18 10 views
5

Ich benutze Symfony2. Wenn die PDF-Datei dieses Code erzeugt wird, mit:Schlechte Zeichen beim Generieren der PDF-Datei mit Knp Snappy

public function printAction($id) 
    { 
     // initialiser $demande 
     $html = $this->renderView('PFETimeBundle:Demande:print.html.twig', 
      array('demande'=> $demande) 
     ); 

      return new Response(
       $this->get('knp_snappy.pdf')->getOutputFromHtml($html), 
       200, 
       array(
        'Content-Type'   => 'application/pdf', 
        'Content-Disposition' => 'attachment; filename="file.pdf"' 
       ) 
      ); 
    } 

ich diesen Inhalt (französisch Zeichen in schlechten Zeichen erscheinen): enter image description here

Antwort

12

versuchen, die encoding Eigenschaft hinzufügen

'encoding' => 'utf-8', 

heren eine vollständige Kopie meines Arbeitscodes, bitte beachten Sie, dass ich ein Options-Array als zweites Argument an getOutPutFromHtml übergeben()

 return new Response(
      $this->get('knp_snappy.pdf')->getOutputFromHtml($html, array(
       'orientation' => 'landscape', 
       'enable-javascript' => true, 
       'javascript-delay' => 1000, 
       'no-stop-slow-scripts' => true, 
       'no-background' => false, 
       'lowquality' => false, 
       'encoding' => 'utf-8', 
       'images' => true, 
       'cookie' => array(), 
       'dpi' => 300, 
       'image-dpi' => 300, 
       'enable-external-links' => true, 
       'enable-internal-links' => true 
      )), 
      200, 
      array(
       'Content-Type'   => 'application/pdf', 
       'Content-Disposition' => 'attachment; filename="report.pdf"' 
      ) 
     ); 
+0

Ihnen sehr danken. Es hat für mich funktioniert. – mehdi

+0

np, froh, dass es geholfen hat! –

+0

Danke dafür. Sie haben mir viel Zeit erspart, den Code durchzugehen, um herauszufinden, wie Sie Optionen weitergeben und welche Option Sie verwenden können, um die 'Kodierung' festzulegen: –

1

Wenn Sie die generateFromHtml Methode verwenden, müssen Sie es wie folgt verwenden, an dritter Parameter:

$this->container->get('knp_snappy.pdf')->generateFromHtml(
    $this->container->get('templating')->render(
     'YourBundle:Template:pdfTemplate.html.twig', 
     array(
      'var' => $var, 
     ) 
    ), 
    '/path/to/file.pdf', 
    array(
     'encoding' => 'utf-8', 
    ) 
); 
Verwandte Themen