TCPDF оптимизировать производительность - PullRequest
3 голосов
/ 21 июня 2011

Я много занимался поиском и тестированием.Моя задача - оптимизировать генерацию PDF из HTML.

Мой код:

<?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 сек.

$ pdf-> writeHTML - 9 сек.

$ pdf-> Вывод - 5 сек.

Это на сервере IIS (общий хостинг).

Скажите, пожалуйста, как оптимизировать этот метод.У меня больше нет идей: /.

Ответы [ 2 ]

4 голосов
/ 26 октября 2012

На сайте TCPDF есть страница, которая советует избегать использования writeHTML, если это возможно. Помимо этого, он также советует избегать использования больших блоков HTML. Есть еще http://www.tcpdf.org/performances.php, где объясняется, что вы можете отключить дополнительные параметры, чтобы ускорить рендеринг.

2 голосов
/ 24 августа 2014

У меня также была проблема с производительностью TCPDF.Я следовал рекомендациям, приведенным в http://www.tcpdf.org/performances.php. Что я мог бы извлечь из этого:

  • writeHTML () имел большое значение вместо cell (), но только в течение уже короткого времени.Он разделил на 5 время, затраченное на фрагменты, которые не заняли более 5 секунд.Но помимо этого, это не имело большого значения.
  • наоборот, разрезание больших кусков на мелкие работало очень хорошо для меня.Я пытался нарезать большие куски на более мелкие, и казалось, что оптимальным было около 5000 символов на кусочек.Это позволило мне перенести генерацию PDF с 60 до 20 секунд и 7 секунд на моем сервере.

Надеюсь, это поможет!

...