Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]mPDF i 50 stron - długie oczekiwanie
snemeii
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 10.05.2012

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


Ciężko coś stwierdzić nie widząc kodu
Go to the top of the page
+Quote Post
snemeii
post
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 10.05.2012

Ostrzeżenie: (0%)
-----


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.

Ten post edytował snemeii 6.11.2012, 19:22:25
Go to the top of the page
+Quote Post
toffiak
post
Post #4





Grupa: Zarejestrowani
Postów: 395
Pomógł: 80
Dołączył: 24.08.2009

Ostrzeżenie: (0%)
-----


Kiedyś z niego korzystałem i rzeczywiście biblioteka nie jest szybka, ale nadrabia to łatwością użycia, warto przeczytać ten link.


--------------------
Go to the top of the page
+Quote Post
motyl-pl
post
Post #5





Grupa: Zarejestrowani
Postów: 294
Pomógł: 31
Dołączył: 2.04.2010

Ostrzeżenie: (0%)
-----


czy ktoś może orientuje się czy ta biblioteka obsługuje polskie znaki ?


--------------------
Go to the top of the page
+Quote Post
r4nd4ll
post
Post #6





Grupa: Zarejestrowani
Postów: 38
Pomógł: 5
Dołączył: 10.05.2009

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 12:03