Witam,
Potrzebuję pomocy przy wyborze gemu generującego pliki PDF. Znalazłem trzy gemy nad którymi się zastanawiam i chciałbym zasięgnąć w tej sprawie opinii osób bardziej doświadczonych w temacie. Konkretnie chodzi mi o:
Do wygenerowania mam podsumowanie zamówienia i raczej niezbyt skomplikowane techniczne opisy wraz z rysunkami. Chciałbym to zrobić w miarę bezboleśnie, a do tej pory mam raczej złe doświadczenia z generowaniem dokumentów PDF. Używałem kiedyś tcpdf dla projektu w PHP i opisanie prostego dokumentu było drogą przez mękę (nie działały podstawowe style CSSa, wszystko musiało być “inline” i “w tabelkach”, jak za dawnych czasów).
Wicked_pdf. Jeśli chcesz cokolwiek więcej niż prosty tekst w pdfie (a zazwyczaj chcesz), to idź w wicked_pdf. Rozumie normalne cssy. 10/10 instalowałbym ponownie.
Z czystym sumieniem polecam go.
Łatwe wydruki prostych rzeczy.
Łatwe dodawanie logo i/lub stopek z numerami stron, etc…
Łatwe wydruki tabel, a nawet tabel w tabeli.
OK. Dziękuję za dotychczasowe opinie. Ogólnie chodzi o zamówienia w sklepie z meblami, a więc pewnie tabelka i jakieś obrazki. Niestety z tego co wiem będę musiał się dostosować do oficjalnego szablonu, więc przydałaby się pewna elastyczność na wypadek gdyby mieli coś “powymyślane”.
Może od razu zapytam o obsługę jakiegoś własnego fontu, bo pewnie będzie taki problem.
Jak potrzebujesz wygenerować PDF (raport, dokument) z surowych danych -> idz w Prawn
Jeżeli potrzebujesz renderować wstawki HTML (ja miałem taki przypadek) idź w Wicked_pdf.
Pierwszy działa bardziej na zasadzie biblioteki która daje Ci narzędzia do budowania PDFów,
Drugi to wrapper na wkhtml2pdf (domyślnie wsparcie jej dla dość starej wersji wkhtml2pdf. Ja wpinałem nową i mogę powiedzieć że jest z tym zabawnie - nie wszystko wtedy działa pięknie bo wkhtml2pdf zmieniło swoje API w międzyczasie). Mimo tego też jest całkiem OK.
Ja nie polecam prawna, ogólnie nie znalazłem biblioteki ruby do pdfów spełniającej moje wymagania. Jeżeli miałbym ponownie do tematu usiąść to poszukałbym w bibliotekach javowych (np. PDFBox od Apache). Prawn ma słabą dokumentację, zrobienie bardziej skomplikowanej tabelki jest trudne (np. łamanie komórki między strony), brakuje helperów do formatowania itd.
wicked_pdf proste przyjemne ogólnie polecam. no ale przeciez to tylko wrapper… no własnie i to jest fajne. zrobisz tylko proste rzeczy … kilka miesięcy temu zrobilismy w tym generowanie recept lekarskich no i racja było proste xd.
prawn tez fajne narzedzie ale do opanowania wymaga wiekszego nakładu czasu. większe możliwości od wicked. dokumentacja była niczego sobie. Jak to jest słaba dokumentacja gpl http://prawnpdf.org/manual.pdf to narawdę chcę zobaczyć dobrą. Prawn to GPL wicked jest na mit.
do tabel prawn ma osobnego gema http://prawnpdf.org/prawn-table-manual.pdf
Dziękuję za wszystkie opinie, jak skończę projekt (pewnie za dłuższy czas, bo jest dopiero w fazie negocjacji) to napiszę “wrażenia”. Po tym co tutaj zobaczyłem myślę że wicked_pdf będzie rozsądnym wyborem na moje potrzeby.
Także +1 dla wicked_pdf ponieważ wkhtmltopdf jako jedyny jest dla ludzi (as in: konwertuje html do pdfa) i działa jak złoto. W tym między innymi wykonuje javascript onready, więc można podpiąć dowolną bibliotekę js do generowania wykresów czy czego tam chcesz (tym wkhtmltopdf zdobył moje serce).
Oczywiście prawn pozwala na więcej kontroli, jak wszystko gdzie klei się ręcznie, ale można się szybko sfrustrować.
Polecam Shrimp bazujący na PhantomJS, podobnie jak wkhtmltopdf oparty na headlessowym Webkit. Generuję nim dokumenty i fakturki z html/css/svg. Prawn odradzam, za duża rzeźba i za dużo ograniczeń.
Wcześniej testowałem wicked_pdf, jednak wkhtmltopdf był wolny. Niestetgy przez wymóg xvfb, zaśmiecamy system prawie kompletnym środowiskiem Xorg. Do Phantoma pamiętam niczego właściwie nie potrzebowałem do paczki. Ponadto PhantomJS 2.0 jest oparty na nowszej wersji Webkit z Qt 5.3 (wcześniej 4.8). Śledząc github widziałem, iż migracja na Qt 5.3 była dosyć czasochłonna. Trudno powiedzieć kiedy wkhtmltopdf zmigruje się na nie, jeśli w ogóle.