tcpdf库html渲染太慢了

时间:2015-01-13 10:24:20

标签: php html tcpdf

我正在使用tcpdf(版本5.9.161)。 writeHtml()只在我的代码中呈现一个html表。如果该表仅适用于一个pdf页面,那么它可以正常工作,但如果表格大于60页面那么它将需要100-110秒。一个PHP脚本在2-3秒内制作这个html。

的php.ini:

Max Execution Time 300 sec
memory limit 128MB

我的代码是:

$pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);        
$pdf->setHeaderFont(Array( PDF_FONT_NAME_MAIN, '',PDF_FONT_SIZE_MAIN ));
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);   
$pdf->SetFontSubsetting(false);        
$pdf->SetHeaderData(K_PATH_IMAGES.'alpha.png', PDF_HEADER_LOGO_WIDTH,'BSS Tech', '');        
$pdf->setPrintHeader(true);     
$pdf->SetAutoPageBreak(true, 30);
$pdf->setPrintFooter(true);        
$pdf->AddPage();
$pdf->writeHTML($html, true, false, false, false, '');
ob_clean();
$pdf->Output("report.pdf", 'I'); // finalizing pdf document

和HTML,不使用任何类型的CSS

此表用于以pdf格式显示至少600条记录

 $html .= ' <div style="text-align: center;"> 
    <table   border="0"  cellpadding="2px" cellspacing="0"><tbody>
    <tr >
    <th align="left" style="width:120px;font-weight:bold" >Organization Name:</th>
    <th align="left">' . $OrgName . '</th>
    <th align="left"  style="width:100px;font-weight:bold">Field :</th>
    <th align="left" >' . $fieldName . '</th>
    </tr>

    <tr >
    <th align="left" style="width:120px;font-weight:bold">Component:</th>
    <th align="left" >' . $type . '</th>
    <th align="left"  style="width:100px;font-weight:bold"></th>
    <th align="left"  >' . '' . '</th></tr>

    </tbody></table></div>';


    $html .= ' <div style="text-align: center;"> 
    <table   border=".5"  cellpadding="2px" cellspacing="0"><tbody>
    <tr >
    <th align="left" BGCOLOR="#DBFEF8" style="width:5%;font-weight:bold" >SI#:</th>
    <th align="left" BGCOLOR="#DBFEF8" style="width:13%;font-weight:bold" >CP Component</th>
    <th align="left"  BGCOLOR="#DBFEF8" style="width:15%;font-weight:bold">Component ID :</th>
    <th align="left" BGCOLOR="#DBFEF8" style="width:10%;font-weight:bold">Circuit No</th>
    <th align="left" BGCOLOR="#DBFEF8"  style="width:12%;font-weight:bold">Location</th>
    <th align="left" BGCOLOR="#DBFEF8" style="width:15%;font-weight:bold">Over All Status</th>
    <th align="left" BGCOLOR="#DBFEF8" style="width:15%;font-weight:bold">Remark</th>
    <th align="left" BGCOLOR="#DBFEF8" style="width:15%;font-weight:bold">Date</th>
    </tr>';

    for ($i=0 ; $i<count($clientID);$i++){
    $html .= '  
    <tr >
    <th align="left"  style="width:5%;">'.($i+1).'</th>
    <th align="left"  style="width:13%;">'.$clientID[$i]['Type'].'</th>
    <th align="left"  style="width:15%;">'.$clientID[$i]['ComponentID'].'</th>
     <th align="left"  style="width:10%;">'.$clientID[$i]['CircuitLabel'].'</th>
    <th align="left"  style="width:12%;">'.$clientID[$i]['Location'].'</th>
    <th align="left"  style="width:15%;">'.$clientID[$i]['OverAllStatus'].'</th>
    <th align="left"  style="width:15%;">'.$clientID[$i]['FieldObservation'].'</th>
    <th align="left"  style="width:15%;">'.$clientID[$i]['SurveyDate'].'</th>
    </tr>';
    }

    $html .= '</tbody></table></div>';       
    }

0 个答案:

没有答案