我有一个文件从数据库中提取一些信息,并创建一些相对简单的动态HTML.
然后,DOMPDF可以使用该文件将其转换为PDF文档.DOMDPF使用GET变量来实现基本实现.
ob_start();
include_once("report.php?id=1249642977");
require_once("dompdf/dompdf_config.inc.php");
$dompdf = new DOMPDF();
$dompdf->load_html(ob_get_contents());
$dompdf->render();
$dompdf->stream("sample.pdf", array('Attachment'=>'0'));
ob_end_clean();
Run Code Online (Sandbox Code Playgroud)
我以为我可能能够使用某些东西来实现目标但不出所料它没有用.
那么,如果要将文件直接加载到用于DOMPDF类的字符串中,如何读取输出到浏览器的HTML?
如何使用简单的HTTP请求获取HTML文件,而不是将其加载到$ dompdf对象中:
<?php
//...
$dompdf->load_html(file_get_contents("http://yoursite.net/report.php?id=1249642977"));
//...
?>
Run Code Online (Sandbox Code Playgroud)
我不明白你为什么需要输出缓冲...
两个问题.
首先,您无法使用include_once调用PHP页面 - 查询字符串将被忽略.您必须以其他方式将report.php提供给id.
其次,你正确缓冲输出.但是,您将当前输出缓冲区传递给DOMPDF,告诉它生成PDF到输出缓冲区,并丢弃输出缓冲区.你可能想要这样的东西:
$dompdf = new DOMPDF();
$dompdf->load_html(ob_get_clean());
$dompdf->render();
$dompdf->stream("sample.pdf", array('Attachment'=>'0'));
Run Code Online (Sandbox Code Playgroud)
这将获得当前输出缓冲区,丢弃它,并禁用输出缓冲.然后$ dompdf->流应该有效.