Как конвертировать динамический файл PHP в PDF? - PullRequest
0 голосов
/ 09 января 2012

Я пытаюсь преобразовать динамический файл базы данных php в pdf.Я пытаюсь с DOMPDF, но у меня есть проблема с определением строки.Я объясню:

Вот скрипт 'hello world' для dompdf:

require_once("dompdf_config.inc.php");
$html =
    '<html><body>'.
    '<p>Hello World!</p>'.
    '</body></html>';
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream("hello_world.pdf");

Дело в том, что вместо простого

'<html><body>'.
'<p>Hello World!</p>'.
'</body></html>' 

у меня естьдлинный PHP-файл, полный функций и SQL-запросов.из-за этого у меня есть много знаков ", ';; и т. д. У меня также есть динамическая диаграмма javascript (jqplot) на этой странице.

Поэтому вместо файла PDF я получаю ошибки ошибки ошибки ...

У кого-нибудь есть решение для этого?

Я буду очень признателен за любой ответ и буду очень благодарен за решение ...

Ответы [ 4 ]

4 голосов
/ 09 января 2012

Сначала вам нужно сгенерировать HTML из вашего PHP, а затем передать его в DOMPDF:

<?php
    require_once("dompdf_config.inc.php");
    ob_start();
    require_once("path/to/input/file.php");
    $dompdf = new DOMPDF();
    $dompdf->load_html(ob_get_clean());
    $dompdf->render();
    $dompdf->stream("file.pdf");
?>

Вы также можете сделать обычный HTTP-запрос:

<?php
    require_once("dompdf_config.inc.php");
    $dompdf = new DOMPDF();
    $dompdf->load_html_file('http://example.com/file.php');        
    $dompdf->render();
    $dompdf->stream("file.pdf");
?>    

Если вам нужна поддержка JavaScript, попробуйте wkhtmltopdf , он основан на Webkit и отлично работает.

2 голосов
/ 09 января 2012

Вы можете использовать ob_start и ob_get_contents для запуска кода PHP и захвата вывода в виде строки.

Однако для диаграммы JavaScript вам не повезло. DOMPDF довольно умный, но не такой умный. Вам нужно будет либо использовать решение для работы с диаграммами без JavaScript, обойтись без диаграмм, либо использовать веб-браузер для создания PDF.

0 голосов
/ 13 сентября 2014

Попробуйте это ...

<?php
    ob_start();

    require_once("dompdf_config.inc.php");

    $file = file_get_contents('http://example.com/file.php');

    $dompdf = new DOMPDF();
    $dompdf->load_html($file);
    $dompdf->render();
    $dompdf->stream("filename.pdf");
?>
0 голосов
/ 12 января 2012

Я не уверен, зачем вам сначала нужно генерировать HTML для создания PDF, но, как другие предлагали, создайте свой PHP-скрипт и затем используйте что-то вроде FPDF или TCPDF .

Они оба прекрасно создают PDF-файлы и могут принимать ввод HTML.

...