Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 872 Pomógł: 94 Dołączył: 31.03.2010 Ostrzeżenie: (0%)
|
Część, chciałbym się Was zapytać, w jaki sposób można wygenerować duży plik PDF. Pisząc duży mam na myśli przynajmniej te 5000 stron. Sam HTML na podstawie którego to generuję ma ponad 13MB. Biblioteki napisane w PHP odrzuciłem na wstępie, ale niestety nawet wkhtmltopdf na linuxie nie daje rady. Będę wdzięczny za pomoc.
Z góry proszę o nie pisanie postów typu: masz to źle zaprojektowane, może da się generować mniejsze. Takie są niestety wymagania i nie ja je narzucam, a biznes (w korporacji). Dodam, że praktycznie cały PDF to jedna duża tabelka, może da się to generować nie na podstawie HTML, tylko jakoś inaczej. Ten post edytował lukaskolista 6.05.2015, 10:11:33 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 872 Pomógł: 94 Dołączył: 31.03.2010 Ostrzeżenie: (0%)
|
Jak dla mnie problem leży w wydajności wkhtmltopdf, przy mniejszych ilościach HTML (np. dających 200 stron pdf) działa w kilka sekund. FPDF w php daje radę wygenerować taką tabelę w kilka sekund, ale znowu nie ma osbługi nagłówków i stopek dla stron oraz HTML, generalnie jest ubogi. Mpdf wymięka nawet przy tych 200 stronach pdf.
Spróbuję zwiększyć limit pamięci (w tej chwili 1GB na wirtualce), ale wątpię, że coś to da. Cytat No cóż, wkhtmltopdf się wykrzacza? tzn nie generuje nic, czy generuje, ale nie działa ze skryptu? Generuje pusty pdf (0kb), wersję mam z QT, ponieważ tylko z QT daje osbługę nagłówków i stopek z zewnętrznych plików. Nie rozumiem stwierdzenia "nie działa ze skryptu". Ogólnie w wkhtmltopdf dochodzę do momentu: Loading pages (1/6) [==============================> ] 50% i tak zostaje na tych 50% nawet kilka godzin (raz trzeba było wirtualke zrestartować, bo nie dało się z nią nawet połączyć). Edit: przy generowaniu postscripta nie działają stopki i nagłówki, poza tym też tworzy pusty plik Edit 2: Zwiększyłem limit pamięci do 3GB i teraz działa szybko, niestety wywala się na nagłówkach i stopkach dla stron z komunikatem: Error: Failed loading page file:///sciezka_do_pliku_stopki (sometimes it will work just to ignore this error with --load-error-handling ignore) a na samym końcu wali błędem: QPaintDevice: Cannot destroy paint device that is being painted Edit 3: w miarę postępu prac edytuję ten temat, żeby było dla innych. Zmieniłem opcje --header-html i --footer-html aby pobierały nagłówek i stopkę przez http:// zamiast przez file:// i otrzymałem komunikat o przekroczonym limicie otwartych plików. Prawdopodobnie przy file:// jest ten sam błąd, tylko wyświetla info, że nie może otworzyć pliku zamiast info o przekroczonym limicie otwartych plików. Po ustawieniu wiekszego limitu (muszę na to poczekać) napiszę, jaki jest efekt. Ten post edytował lukaskolista 6.05.2015, 14:57:03 |
|
|
|
lukaskolista Generowanie dużych plików PDF 6.05.2015, 10:06:11
salfunglandyare Mógłbyś spróbować podzielić tabelę na części, wyge... 6.05.2015, 10:29:12
lukaskolista Tylko wtedy nie zachowam płynnych przejść tabeli n... 6.05.2015, 12:02:02
salfunglandyare No cóż, wkhtmltopdf się wykrzacza? tzn nie generuj... 6.05.2015, 12:15:51
sazian nie testowałem ale może spróbuj tego https://sites... 6.05.2015, 20:28:09
lukaskolista Niestety, ale potrzebuję opcji nagłówka dla każdej... 7.05.2015, 10:52:25
salfunglandyare Nie wiem, czy rozwiązałeś problem, ale z tego co p... 7.05.2015, 11:38:19
lukaskolista Tak właśnie robię. Problem leżał w niewystarczając... 11.05.2015, 13:24:20 ![]() ![]() |
|
Aktualny czas: 30.12.2025 - 03:38 |