Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]mPDF i 50 stron - długie oczekiwanie
Forum PHP.pl > Forum > Przedszkole
snemeii
Witajcie,

Od pewnego czasu na swojej stronie wykorzystuję mPDF do generowania PDFów, dziś napotkałem na problem, ponieważ miałem wygenerować raport składający się z około 50 stron i trwało to i trwało. Niestety limit czasu upłynął i skrypt się nie wykonał, tak więc zwiększyłem

To oczywiście pomogło ale mimo wszystko trzeba czekać około 30s żeby otrzymać PDF. Czy jest coś co mogłoby przyspieszyć generowanie tego pliku, czy mieliście podobne problemy, czy może nic sie już z tym nie da zrobić ?

Pozdrawiam
CuteOne
Ciężko coś stwierdzić nie widząc kodu
snemeii
OK dajmy na to taki kod wykonujący:

  1. $html = '';
  2.  
  3. for ($i=0; $i<=5000; $i++)
  4. {
  5. $html .= " ";
  6. $html .= md5($i);
  7. }
  8.  
  9.  
  10.  
  11. include("../modules/pdf/mpdf.php");
  12.  
  13. $mpdf=new mPDF('utf-8','A4','12','10', 5, 5, 5, 5);
  14.  
  15. $mpdf->AddPage('L');
  16. $mpdf->SetHTMLFooter("<div style='text-align:center; font-size:12px;'>strona {PAGENO}/{nb}</div>", 'O',true);
  17. $mpdf->WriteHTML($html);
  18. $pdf = $mpdf->Output('', 'S');
  19.  
  20.  
  21. die('Some data has already been output to browser, can\'t send PDF file');
  22. header('Content-Description: File Transfer');
  23. header('Content-Transfer-Encoding: binary');
  24. header('Cache-Control: public, must-revalidate, max-age=0');
  25. header('Pragma: public');
  26. header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');
  27. header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
  28. header('Content-Type: application/force-download');
  29. header('Content-Type: application/octet-stream', false);
  30. header('Content-Type: application/download', false);
  31. header('Content-Type: application/pdf', false);
  32. if (!isset($_SERVER['HTTP_ACCEPT_ENCODING']) OR empty($_SERVER['HTTP_ACCEPT_ENCODING'])) {
  33. header('Content-Length: '.strlen($pdf));
  34. }
  35. header('Content-disposition: attachment; filename="document.pdf"');
  36. echo $pdf;


Do tego dochodzą jeszcze pliki wchodzace w skład mPDF, ale tam nic nie zmieniałem i wszystkie ustawienia są standardowe.

Kod ambitny nie jest ale jest to przykład... generalnie ta pętla generuje pdfa o 48 stronach, a czas wykonywania to 55sekund ;-(
Z ciekawości zmierzyłem czas zapełniania zmiennej $html przez pętlę ale to trwa 1-2s.
Waga wygenerowanego pdfa to 186KB.
toffiak
Kiedyś z niego korzystałem i rzeczywiście biblioteka nie jest szybka, ale nadrabia to łatwością użycia, warto przeczytać ten link.
motyl-pl
czy ktoś może orientuje się czy ta biblioteka obsługuje polskie znaki ?
r4nd4ll
Cytat(motyl-pl @ 7.11.2012, 13:01:19 ) *
czy ktoś może orientuje się czy ta biblioteka obsługuje polskie znaki ?


Jak najbardziej. Bez zbędnego kombinowania.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.