【发布时间】:2012-09-30 16:05:44
【问题描述】:
我有一个页面,它使用 glob 函数和 file_get_contents 来拥有一些 html 文件并将它们存储在缓冲区中。
所以我想将此缓冲区 ob_get_contents() 转换为 pdf 文件。
最好的方法是什么?怎么样?
提前致谢。
【问题讨论】:
我有一个页面,它使用 glob 函数和 file_get_contents 来拥有一些 html 文件并将它们存储在缓冲区中。
所以我想将此缓冲区 ob_get_contents() 转换为 pdf 文件。
最好的方法是什么?怎么样?
提前致谢。
【问题讨论】:
要从 HTML 和 CSS 创建 PDF 文件,请查看DOMpdf。
虽然此解决方案不支持全部范围的 HTML 和 CSS,而且它的渲染有时会很痛苦,但它有一个优点:它不需要安装任何特殊的二进制文件(如 wkhtmltopdf)。它应该在您的普通共享 PHP 主机上运行。
使用示例:
<?php
require_once("dompdf_config.inc.php");
$html =
'<html><body>'.
'<p>Put your html here, or generate it with your favourite '.
'templating system.</p>'.
'</body></html>';
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream("sample.pdf");
?>
【讨论】:
为什么要为此使用输出缓冲区?您可以使用file_get_contents 在变量中使用它,并且可以使用变量中的数据简单地创建您的 pdf。当使用ob_get_contents 时,它所做的只是返回输出缓冲区,而您通常对结果执行的操作是将结果保存到变量中......
顺便说一句。你想把html转换成pdf吗?如果是,请查看wkhtmltopdf
【讨论】:
如果ob_get_contents 包含 html 文件,那么它们有很多解决方案可以实现您想要的。我认为你应该看看以下内容
使用Simple HTML 2 PDF using PHP的示例
$html = ob_get_contents();
ob_end_clean();
$pdf = new HTML2FPDF();
$pdf->SetTopMargin(1);
$pdf->AddPage();
$pdf->WriteHTML($html);
$pdf->Output('test.pdf','D');
【讨论】: