我正在使用TCPDF库来创建报告。当我从数据库中获取少量数据时,它给了我快速的结果。但是当数据库返回数百行时,需要几分钟。我也在搜索论坛。很多人提到禁用字体。
protected $font_subsetting = false;
但仍未能获得良好的表现。我的报告代码是:
$html.='<tr >
<td align="left" style="border-bottom: solid 1px #999;"><strong>'.$i.'</strong></td>
<td align="left" style="border-bottom: solid 1px #999;">'.$belt_no.'</td>
<td align="left" style="border-bottom: solid 1px #999;">'.$hname.'</td>
<td align="left" style="border-bottom: solid 1px #999;">'.$hdob.'</td>
<td align="left" style="border-bottom: solid 1px #999;">'.$hhiredate.'</td>
<td align="left" style="border-bottom: solid 1px #999;">'.$hhomeps.'</td>
<td align="left" style="border-bottom: solid 1px #999;">'.$hrank.'</td>
<td align="left" style="border-bottom: solid 1px #999;">'.$st_date.'</td>
<td align="left" style="border-bottom: solid 1px #999;">'.$police_station.'</td> </tr>'; $i++; } $html.='</table>';$pdf->writeHTML($html, true, false, true, false, '');
答案 0 :(得分:0)
如果你有数百行,那么很可能需要时间,我不知道你在循环中做了什么,但我在你的代码中看到你使用的变量如$ belt_no,你可以优化你的代码尽可能避免变量。如果你从桌子上取货 而不是做:
while($ligne = mysql_fect_array($res)){
$belt_no = $ligne['belt_no'];
$hdob= $ligne['hdob'];
$html = '<td align="left" style="border-bottom: solid 1px #999;">'.$belt_no.'</td>
<td align="left" style="border-bottom: solid 1px #999;">'.$hname.'</td>
';
}
你可以跳过变量并节省一些内存空间:
while($ligne = mysql_fect_array($res)){
$html = '<td align="left" style="border-bottom: solid 1px #999;">'.$ligne['belt_no'].'</td>
<td align="left" style="border-bottom: solid 1px #999;">'.$ligne['hdob'].'</td>
';
}