使用Zend框架和TCPDF这需要40分钟来打印Test.pdf。我现在不知道如何将这种异常时间减少到正常状态?
set_time_limit(0);
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING);
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
$pdf->setLanguageArray($l);
$pdf->setFontSubsetting(true);
$pdf->SetFont('dejavusans', '', 8, '', true);
$pdf->AddPage();
/* Database mysql gives the records and it is wrapped with <table> */
$html = "<table>1310 records.... with some simple <tr><td></td></tr></table>";
$pdf->writeHTMLCell($w=0, $h=0, $x='', $y='', $html, $border=0, $ln=1, $fill=0, $reseth=true, $align='', $autopadding=true);
$pdf->Output('Test.pdf', 'I');
exit;
跟进:(调整效果)
1)php.ini: memory_limit = 512M max_execution_time = 0
2)编码 $ PDF-&GT; setFontSubsetting(假); // true到false
3)调试显示,花费了整个时间
$ pdf-&gt; writeHTMLCell($ w = 0,$ h = 0,$ x ='',$ y ='',$ html,$ border = 0,$ ln = 1,$ fill = 0, $ reseth = true,$ align ='',$ autopadding = true);
答案 0 :(得分:6)
由于没有其他答案,我强烈建议您好好看看MPDF(GPL),因为它比TCPDF快得多。我在一台服务器上进行了操作,花了大约三分钟使用TCPDF将MPDF减少到几秒钟。我只假设某种格式的HTML - &gt; PDF在TCPDF中遇到了一些低效的功能。
无论如何,我提供以下代码,帮助我转换HTML - &gt; PDF。
$mpdf = new mPDF('c');
$mpdf->setDisplayMode('fullpage');
$stylesheet = file_get_contents('css/core.css');
$mpdf->WriteHTML($stylesheet,1);
$html = "<table>1310 records.... with some simple <tr><td></td></tr></table>";
$mpdf->WriteHTML($html);
$mpdf->Output(standardize(ampersand('filename', false)) . '.pdf', 'D');
此代码提供PDF格式的可下载文件,MPDF文档提供了许多其他示例以满足您的需求。
答案 1 :(得分:1)
我们使用mpdf
主要是因为我可以在没有安装的情况下“包含”它。
有一些小调整需要添加到php.ini,我认为是mbstring。
通过缩小我提供WriteHTML
动词的HTML,我能够每分钟获得75页,每分钟最多100页。我们没有任何图形。
然后我使用ghostscript
对每个接收它们的人进行排序和cat pdf(15页左右)。对于在一个目的地接收报告的50或60人,每个800-1000页的猫流程大约需要3分钟。
所有这些都放在一个大多数人坐在那里的盒子上。
答案 2 :(得分:0)
TCPDF性能下降的原因之一可能是从外部URL插入的图像。 DNS解析和文件下载需要时间并且会减慢PDF生成过程。