我正在为正在构建的项目使用dompdf,项目的一部分需要以PDF格式生成报告。
在报告的HTML版本中,我在iFrame中显示了报告的一些详细信息,如下所示:
<?php foreach ($jobsheets as $jobsheet) { ?>
<iframe src="http://localhost/modal/customers/<?php echo $company['Company']['id']; ?>/jobs/<?php echo $jobsheet['Jobsheet']['id']; ?>/viewlite/" id="jbif<?php echo $jobsheet['Jobsheet']['id']; ?>" frameborder="0" width="975px" height="272px" scrolling="no" class="<?php echo $jobsheet['Jobsheet']['jobdate']; ?>"></iframe>
<?php } ?>
但是,在不渲染这些iframe的情况下生成的PDF。有什么办法可以让dompdf模块渲染它们,还是我必须在不使用iframe的情况下实际包含数据?
答案 0 :(得分:2)
Dompdf不支持在文档中呈现iframe。您可以在跟踪器中提交问题。 你现在需要使用别的东西。
答案 1 :(得分:1)
要显示从dompdf生成的pdf文件,请尝试将文件保存到磁盘,然后在对象标记内调用。
PHP
try {
$buffer = ob_get_contents();
ob_clean();
$dompdf = new \Dompdf\Dompdf();
$dompdf->setPaper('A4');
$dompdf->loadHtml($buffer);
$dompdf->set_option('isHtml5ParserEnabled', true);
// Render the HTML as PDF
$dompdf->render();
// save the generated PDF to Browser
file_put_contents('file.pdf', $dompdf->output());
chmod('file.pdf', 0777);
} catch (Exception $ex) {
echo $ex->getMessage();
}
HTML
<html>
<head>
<title>FILE PDF</title>
</head>
<body style="margin: 0; padding: 0">
<div style="width: 740px; margin-left: auto; height: 20%; padding: 0; margin: 0;">
<a href="">SEND PDF</a>
</div>
<object data="http://<?=$_SERVER['HTTP_HOST']?>/file.pdf" type="application/pdf" style="margin: 0; width:100%; height: 80%; padding: 0;">
<embed src="http://<?=$_SERVER['HTTP_HOST']?>/file.pdf" type="application/pdf" />
</object>
</body>