Я пытаюсь преобразовать динамический файл базы данных 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 я получаю ошибки ошибок ошибок …
У кого-нибудь есть решение для этого?
Я буду очень признателен за любой ответ и буду действительно благодарен за решение …
Сначала вам нужно сгенерировать 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 и отлично работает.
Вы можете использовать ob_get_contents
и ob_get_contents
для запуска PHP-кода и записи вывода в виде строки.
Однако для диаграммы JavaScript вам не повезло. DOMPDF довольно умный, но он не такой умный. Вам нужно либо использовать графическое решение, не использующее JavaScript, обойтись без диаграмм, либо использовать веб-браузер для создания PDF-файла.
Я не уверен, почему вам нужно генерировать HTML для создания PDF-файла, но, как предложили другие, создайте свой PHP-скрипт, а затем используйте что-то вроде FPDF или TCPDF .
Оба они строят PDF-файлы просто отлично и могут принимать HTML-данные.
Попробуй это …
<?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"); ?>