我正在尝试使用非常简单的HTML生成PDF。但是,它包含5张图像(总共不到50KB)。
生成PDF非常慢。生成PDF需要12秒钟。我使用XAMPP在Windows 10(i5-4590)上运行。
以下是我的代码:
<?php
require_once 'dompdf/autoload.inc.php';
use Dompdf\Dompdf;
$dompdf = new DOMPDF();
$html = <<<EOD
<html>
<head>
<style type="text/css">
html {
margin: 1%;
padding: 0;
}
.header,
.footer {
width: 100%;
text-align: center;
position: fixed;
font-size: 26px;
}
.header {
top: 0px;
}
.footer {
bottom: 18px;
}
.center {
margin: 0 auto;
}
.divTable{
display: table;
width: 100px;
text-align: center;
margin: 0 auto;
}
.divTableRow {
display: table-row;
}
.divTableHeading {
margin: 0 auto;
}
.divTableCell, .divTableHead {
display: table-cell;
padding: 0 33px;
}
.bottom .divTableCell {
padding-top: 30px;
}
.divTableHeading {
display: table-header-group;
font-weight: bold;
}
.divTableFoot {
display: table-footer-group;
font-weight: bold;
}
.divTableBody {
display: table-row-group;
}
div.img-border img {
border-style: solid solid solid solid;
border-width: 2px 2px 2px 2px;
border-color: #eb0089;
}
</style>
</head>
<body>
<div class="center">
<div class="divTable top">
<div class="divTableBody">
<div class="divTableRow">
<div class="divTableCell" style="padding-left:0px;"><div class="img-border"><img src="300-small.png"></div></div>
<div class="divTableCell"><div class="img-border"><img src="300-small.png"></div></div>
<div class="divTableCell" style="padding-right:0px;"><div class="img-border"><img src="300-small.png"></div></div>
</div>
</div>
</div>
<div class="divTable bottom">
<div class="divTableBody">
<div class="divTableRow">
<div class="divTableCell" style="padding-left:0px;"><div class="img-border"><img src="300-large.png"></div></div>
<div class="divTableCell" style="padding-right:0px;"><div class="img-border"><img src="300-large.png"></div></div>
</div>
</div>
</div>
</div>
<div class="footer">
$customer_title - $customer_order_number
</div>
</body>
</html>
EOD;
$dompdf->set_option( 'dpi' , '300' );
$dompdf->load_html($html);
$dompdf->setPaper('A4', 'portrait');
$dompdf->render();
$dompdf->stream("sample.pdf", array("Attachment"=>0));
我无法理解如何让它更快地进行处理。
答案 0 :(得分:0)
在第一个表格行的第三个DIV中,您忘记了install_requires
属性的结束语:
class
应该是
<div class="divTableCell style="padding-right:0px;">
在第二行的第二个DIV中再次出现同样的错误。
答案 1 :(得分:0)
由于图像,我也有pdf下载加载问题。
必须将图像转换为base64,然后将base64字符串放入img src属性
例如<img src="data:image/png;base64,'.$base64String.'" />