2013-07-02 40 views
2

我正在使用TCPDF庫來創建報告。當我從數據庫中提取幾行數據時,它給了我快速的結果。但是當數據庫返回數百行時,需要幾分鐘時間。我也搜索論壇。許多人提到禁用字體。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

從單個表請不說,我取數據。我沒有任何複雜的查詢。唯一的問題是生成PDF文件。 –

回答

0

如果你有上百個排它最有可能會需要一段時間的,我不知道你在你的循環正在做什麼,但我在你的代碼,您正在使用的變量,看$ belt_no,你可以通過儘可能避免變量來優化你的代碼。如果你是從一個表 istead做的獲取:

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> 
'; 
} 

可以skipp變量和節省一些內存空間:

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> 
'; 
}