我尝试将动态php数据库文件转换为pdf。 我尝试使用DOMPDF,但我在定义字符串时遇到问题。我会解释一下:
这是dompdf的'hello world'脚本:
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查询。因为它我内部有许多“,”,e.t.c标志。我在这个页面上也有一个javascript动态图表(jqplot)。
因此,我得到错误错误错误而不是pdf文件......
有人有解决方案吗?
我真的很感激任何答案,并且真的非常感谢解决方案......
答案 0 :(得分:4)
首先,您需要从PHP生成HTML,然后将其传递给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,并且可以完美地运行。
答案 1 :(得分:2)
您可以使用ob_start
和ob_get_contents
来运行PHP代码并将输出捕获为字符串。
但是对于JavaScript图表,你运气不好。 DOMPDF非常聪明,但它并不那么聪明。您需要使用非JavaScript图表解决方案,不使用图表,或使用Web浏览器生成PDF。
答案 2 :(得分:0)
答案 3 :(得分:0)
试试这个...
<?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");
?>