Z notatnika webmasterki

28 Wrz, 2012

Generowanie PDF w PHP

Zamieszczony przez: Joanna w: PDF|PHP

Jakiś czas temu poproszono mnie o stworzenie w php skryptu, który będzie generował pliki pdf w określonym formacie. Zetknęłam się już wcześniej z tym zagadnieniem, ale były to wtedy bardzo nieskomplikowane pliki i nie za bardzo było o czym pisać. Szczególnie, że wszystko co potrzebowałam to klasa FPDF i przykłady znajdujące się w jej dokumentacji.

Tym razem szybko się okazało, że dość stara i nierozwijana klasa FPDF nie wystarczy, żeby osiągnąć to czego ode mnie wymagano. Tradycyjnie zrobiłam casting i spośród różnej maści narzędzi wybrałam następcę FPDF czyli TCPDF. To klasa dla odmiany nieco nadmiernie, jak na mój gust rozbudowana, ale za to miała wszystko czego mi było potrzeba.

Jakoś nie zachwyciło mnie ani mPDF ani biblioteka HTML2BDF czy DOMpdf, ani nawet narzędzia, które przetwarzają xml na pdf. Wspominam o nich dla porządku, może znajdzie się ktoś, kto wybierze któreś z nich oraz dlatego, że nie podjęłam decyzji ad hoc tylko po dokładnym zbadaniu dostępnych opcji.

Zatem, o ile czas pozwoli niedługo pojawią się artykuły w których opisywać będę zadania jakie przede mną stawały i sposoby na ich rozwiązanie. Nie będę pisac o takich oczywistych i podstawowych sprawach o których można sobie przeczytać w dokumentacji, więc jeśli ktoś nie używał wcześniej ani FPDF ani TCPDF powinien zacząć od zapoznania się z przykładami zanim przejdzie do dalszej lektury.

8 komentarzy na "Generowanie PDF w PHP"

1 | Comandeer

28. września 2012 o 5:03 pm

Avatar

A ja bym to zrobił dość przekornie i walnął exec do PrinceXML ;)

2 | Joanna

28. września 2012 o 5:09 pm

Avatar

No ciekawa propozycja. Zatem zróbmy tak. W miarę jak będę dodawać kolejne wpisy w tej serii Ty będziesz pokazywać jak to zrobić w PrinceXML, dobrze?

3 | Comandeer

28. września 2012 o 7:07 pm

Avatar

tzn tam za bardzo nie ma co pokazywać. Wystarczy przygotować odpowiedni szablon HTML z CSS, w PHP zmienić jego treść i przepuścić przez ten program.

4 | Joanna

28. września 2012 o 9:01 pm

Avatar

No to zobaczymy czy za bardzo niema co pokazywać :P

5 | hwao

30. września 2012 o 5:37 pm

Avatar

Korzystałem z masy klas odpowiedzialnych za generowanie PDF’ów. Najlepsze rozwiązanie wg mnie to: skrypt konsolowy wkhtmltopdf (zamienia html na pdf’a – zupełnie jak google chrome, korzysta z webkit’a – dokladnie taki same efekt otrzymamy ‚drukujac strone jako php’ w chromie).

Zdecydowanie polecam, nie spotkalem się z jakimiś zanczącymi problemami, dużo latwiej się pracuje nad takim dokumentem – generujemy html, dopiero potem PDF’a. Jest to bardzo proste, i nawet generuje pdf’owa nawigacje. Co prawda wymaga zainstalowania binarki na serwerze (ale wiekszość osób nie powinno miec problemów) w razie kompletnego braku możliwości można generować pdf’ów z ‚innego serwera’ (wystarczy wyslac mu URL z jakiego ma zrobic).

Strona projektu:
http://code.google.com/p/wkhtmltopdf/wiki/IntegrationWithPhp

6 | Joanna

30. września 2012 o 6:21 pm

Avatar

No nie wiem, nie wiem. Ciągle nie jestem przekonana, czy taki skrypt poradziłby sobie z wygenerowaniem katalogu zawierającego blisko 2000 stron.

7 | ledo

18. stycznia 2015 o 11:47 pm

Avatar

Nie polecam tej klasy, jeśli trzeba zapanować nad łamaniem tekstu w linii zamkniętej w obrysie. Znacznie lepiej sprawuje się mpdf -używam go do generowania faktur.

8 | Joanna

10. marca 2015 o 5:38 pm

Avatar

Będę pamiętac jak mi się przyjdzie w najbliższym czasie zmierzyć z tworzeniem pdfów

Formularz komentarza

Listopad 2017
P W Ś C P S N
« Lip    
 12345
6789101112
13141516171819
20212223242526
27282930  

Archiwa

About

Moje notatki z pracy

Subskrypcja

Wprowadź swój adres email aby zaprenumerować ten blog i otrzymywać powiadomienia o nowych wpisach przez email.

Dołącz do 25 pozostałych subskrybentów

Tematy