2016-08-04 2 views
0

Я хочу распечатать html в pdf. В проекте я использую symfony и twig для создания шаблона. Когда я возвращаю html в браузер, он выглядит хорошо. И это должно быть около 10 страниц.dompdf - просто получить две страницы в pdf

Но когда я пытаюсь создать PDF, я просто получаю две страницы.

$html = $this->render('offer/print.html.twig', array('offer' => $Offer)); 

$options = new Options(); 
$options->setIsRemoteEnabled(false); 

// instantiate and use the dompdf class 
$dompdf = new Dompdf($options); 
$dompdf->setPaper('A4'); 

// Render the HTML as PDF 
$dompdf->loadHtml($html); 
$dompdf->render(); 
$dompdf->stream(); 

PHP 7 Symfony 3.0.9 DOMPDF 0.7.0

Он не похож на HTML в браузере. Мне нужно отладить css позже. Может ли кто-нибудь сказать мне, почему я просто получаю две страницы в формате pdf?

+0

Почему выходной буфер вообще? Если вызов рендеринга возвращает отображаемые данные в $ html, тогда нет буферизации, повторяя $ html, только чтобы вы могли захватить $ output. почему бы не просто «$ output = $ this-> render ...» вместо этого? –

+0

@MarcB Я тоже это пробовал. , а также $ dompdf-> loadHtml ($ this-> render()); – kristof

+0

Трудно сказать без правильного вывода HTML и CSS, dompdf может быть лапой, чтобы справиться. Убедитесь, что вы также установили правильные размеры в CSS. – DarkBee

ответ

0

Интересно, что проблема заключается в функции render(). Когда я использую renderView(), вместо этого я получил свой вывод на нескольких страницах.

render() также возвращает HTTP-заголовки. Из-за этого я получил разбитый pdf-файл с информацией заголовка на первой стороне и всем содержимым на втором.

Только CSS не работает, но это другой вопрос :)

0

Пожалуйста, загрузите файл вы прут. Я думаю, что с вами проблемы с веткой css.