Плохие символы при создании PDF-файла с Knp Snappy

Я использую Symfony2. Когда файл PDF создается с использованием этого кода:

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"'
)
);
}

Я получаю этот контент (французские символы отображаются плохими символами):
введите описание изображения здесь

5

Решение

попробуйте добавить encoding имущество

'encoding' => 'utf-8',

Вот полная копия моего рабочего кода, пожалуйста, обратите внимание, что я передаю массив опций в качестве второго аргумента getOutPutFromHtml ()

        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"'
)
);
13

Другие решения

Если вы используете generateFromHtml метод, вы должны использовать его следующим образом:

$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',
)
);
1

По вопросам рекламы ammmcru@yandex.ru