2011-06-21 136 views
3

我已经做了大量的搜索和测试。我的任务是优化PDF生成表单HTML。TCPDF优化性能

我的代码是:

<?php 
define('K_TCPDF_EXTERNAL_CONFIG', true); 

require('static_config.php'); 
require("hipero_pdf.class.php"); 

$pdf = new hipero_TCPDF('P', 'mm', 'A4', true, 'UTF-8', false); 

$pdf->SetHeaderData(PDF_HEADER_IMAGE, PDF_HEADER_IMAGE_WIDTH); 
$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->SetFont('dejavusans', '', 10); 

$pdf->AddPage(); 

$pdf->SetTextColor(0, 0, 0); 

$pdf->writeHTML(PDF_SYNEO_HTML, true, false, true, false, ''); 
$pdf->Output('../../Content/Offers/Generated/'.PDF_SYNEO_FILENAME.'.pdf'); 
?> 

我的HTML是有点乱,但测试显示,这是对性能几乎没有影响。

代码的每一次平安都需要不到1秒的时间。被解析。只有这需要更长的时间:

$ pdf-> AddPage - 3 sek。

$ pdf-> writeHTML - 9 sek。

$ pdf->输出 - 5 sek。

这是在IIS服务器(共享主机)上。

请告诉我如何优化这种方法。我没有更多的想法:/。

+1

这听起来异常地长,因为您没有向文档添加任何大的内容......不确定是否有任何方法可以优化此文档。这可能是网页空间简单*很慢。 –

+0

我不认为有可能在没有看到/解释他们如何工作的情况下提出优化方法的方法。 –

回答

4

在TCPDF网站上,有一个页面建议避免使用writeHTML(如果可能)。除此之外,它还建议避免使用大的HTML块。 还有更多的http://www.tcpdf.org/performances.php他们解释你可以关闭更多的选项,使渲染速度更快。

2

我也有TCPDF性能问题。我遵循在http://www.tcpdf.org/performances.php引用的指导原则。我能从中得到什么:

  • writeHTML()取代了cell(),但仅适用于已经很短的时间。用5分钟的时间除以5秒所需的时间。但最重要的是,它没有太大区别。
  • 相反,切割大块小工作对我来说真的很好。我试图把大块切成小块,看起来最好的是每块大约5000个字符。它使我能够在我的服务器上从60秒到20秒和7秒内生成一代pdf。

希望它有帮助!