Który z nich jest najlepszym API PDF dla PHP? [Zamknięte]


110

Który z nich jest najlepszym API PDF dla PHP?


6
to drugie pytanie wydaje się być teraz usunięte ze StackOverflow.
rineez

Znam jego stare pytanie, ale wolałbym MDF, może obsłużyć każdy złożony html, z wyłączeniem kilku punktów, które zostały już powiedziane przez mdf na mpdf1.com/mpdf/limitations
dev.meghraj

Odpowiedzi:


53

Osobiście wolałbym wybrać tcpdf, który jest ulepszoną i utrzymaną wersją fpdf.


12
nie podałeś powodów - jedną wielką jest obsługa Unicode w tcpdf, której całkowicie brakuje fpdf. tcpdf jest nadal aktywnie utrzymywany. i ma również przyzwoitą architekturę obiektową. słowo dla mądrych: fpdf to w zasadzie stara rzecz, która została zastąpiona przez tcpdf.
zanlok,

2
W tcpdf brakuje krytycznych funkcji, takich jak osadzanie i podzbiór czcionek (ważne w przypadku języków azjatyckich).
velcrow

2
Właśnie sprawdziłem witrynę internetową tcpdf i wydaje się, że obsługuje ona podzestawianie i osadzanie czcionek. zobacz argument podzbioru metody SetFont tcpdf.org/fonts.php
Nerrve

1
tcpdf miał pewne problemy, gdy użyłem z czcionkami urdu Unicode.
rineez

1
Jeśli nazywasz pojedynczą klasę z 24 tysiącami linii kodu „przyzwoitym OO”, musisz być na haju. Sprawdź moją refaktoryzowaną wersję FPDF dla rzeczywistego OOP: github.com/bubach/PdfBuilder
Christoffer Bubach

39

Ze strony mpdf : „mPDF to klasa PHP, która generuje pliki PDF z HTML zakodowanego w UTF-8. Jest oparta na FPDF i HTML2FPDF, z wieloma ulepszeniami”.

mpdf jest lepszy od FPDF pod względem obsługi języków i obsługi UTF-8. W przypadku obsługi CJK obsługuje nie tylko osadzanie czcionek, ale także ich podzbiór (dzięki czemu pliki CJK PDF nie są przewymiarowane). TCPDF i FPDF nie mają nic w obsłudze UTF-8 i czcionek w formacie mpdf. Jest nawet wyposażony w niektóre czcionki open source od wersji 5.0.


31

To tylko krótki przegląd tego, jak fPDF radzi sobie z tcPDF pod względem wydajności w najbardziej podstawowych funkcjach każdej biblioteki.

TEST PRĘDKOŚCI

17,0366 sekund na przetworzenie 2000 plików PDF przy użyciu fPDF || 79,5982 sekund na przetworzenie 2000 plików PDF przy użyciu tcPDF

SPRAWDZANIE ROZMIARU PLIKU (w bajtach)

788 fPDF || 1860 tcPDF

Użyty kod był tak identyczny, jak to tylko możliwe i renderuje tylko czysty plik PDF bez tekstu. Używana jest również najnowsza wersja każdej biblioteki z 22 czerwca 2011 r.


5
Istnieje wiele ulepszeń wydajności, które mogą znacznie poprawić prędkość TCPDF (przeszedłem od 1 minuty tworzenia pojedynczego pliku do około 0,5 sekundy): tcpdf.org/performances.php
Dan Smart

1
Te „ulepszenia” będą działać równie dobrze z FPDF i nie pomogą w testach porównawczych. TCPDF to około 24 000 linii kodu, podczas gdy FPDF to około 2400 linii kodu.
Christoffer Bubach

Zaktualizuj do linku @DanSmart
Albert

22

Uważam, że mpdf jest lepszy niż tcpdf pod względem renderowania HTML. Potrafi znacznie lepiej analizować style css i tworzyć pliki PDF, które wyglądają bardzo podobnie do oryginalnego html.

mpdf obsługuje nawet elementy css, takie jak border-radius i gradient itp.

Jestem zaskoczony, dlaczego o mpdf mówi się tak rzadziej, jeśli chodzi o html do pdf.

Sprawdź przykłady tutaj http://www.mpdf1.com/mpdf/index.php?page=Examples

Okazało się, że jest to przydatne do projektowania faktur, paragonów i prostych wydruków itp. Jednak sama witryna podaje, że pliki PDF generowane z formatu mpdf są zwykle większe.


2
Link jest uszkodzony. To może być nowy link: mpdf1.com/mpdf/index.php?page=Examples
Stefan

Aktualizacja z sierpnia 2019 r .: Użyj tego jako odniesienia mpdf.github.io
CodeJunkie

Niestety, mpdf nie radzi sobie dobrze z dużymi komórkami tabeli. Gdy tylko zawartość przekroczy stronę, zaczyna się zmniejszać, co sprawia, że ​​jest bezużyteczna dla każdego projektu, który ma duże tabele. Oprócz tego; jest łatwy w użyciu, wydajny i dobrze udokumentowany.
zumek


11

Osobiście wolę używać domeny dompdf do prostych stron PDF, ponieważ jest to bardzo szybkie. po prostu podaj mu źródło HTML, a on wygeneruje wymaganą stronę.

jednak dla bardziej złożonych projektów wolę bardziej klasyczny pdflib, który jest dostępny jako pecl dla PHP. ma większą kontrolę nad projektami i umożliwia tworzenie bardziej złożonych projektów, takich jak formy idealne do pikseli.


Ale są minusy korzystania z dompdf to to, że nie działa, jeśli chcesz utworzyć wiele plików PDF na raz lub w pętli.
hmjha

5

http://sourceforge.net/projects/html2ps/ , jest najlepszy, jeśli potrzebujesz zgodności css i 3c.

jeśli możesz zainstalować oprogramowanie na swoim serwerze, sugeruję skorzystanie z http://wkhtmltopdf.org/ .

Istnieje również moduł drupal korzystający z wkhtmltopdf :)

PHP wymaga wielu zasobów, aby przekonwertować HTML na pdf, imho, php nie jest odpowiednim językiem do tego (jeśli oczekujesz dużej liczby konwersji lub dużych plików do konwersji)


Głosuję za wkhtmltopdf, ale zwłaszcza przy użyciu metody takiej jak użycie zewnętrznego konwertera PHP nie można winić za utratę szybkości. Myślę, że użycie wkhtmltopdf lub prince z asp.net byłoby praktycznie równie szybkie jak z PHP (chociaż używam asp.net). Jasne, PHP nie ma pełnej kontroli procesu, co .net, ale założę się, że nadal działa wystarczająco szybko dla większości projektów
Joel Peltonen

4

Zend_Pdf Zend Framework jest naprawdę dobry. Jest na równi z pdflib pod względem kontroli wydajności i złożoności i jest bardziej przenośny, ponieważ jest czystym rozwiązaniem php. To powiedziawszy, jest wolniejszy i zużywa więcej pamięci niż pdflib. Moduły Pecl są zawsze bardziej wydajne niż rozwiązania PHP.

DOMPdf to najłatwiejszy sposób na szybkie utworzenie pliku PDF. Jak powiedział Mike, podaj go w html i wyprowadzi plik PDF. Pod maską ma możliwość użycia r & ospdf lub pdflib jako silnika renderującego.


1
Zend PDF ma znaczące problemy (problemy z wydajnością, jeśli osadzasz pliki PNG z foliami) [ framework.zend.com/issues/browse/ZF-3392] . Ponadto Zend PDF jest bardzo złym narzędziem do zmiany metadanych w plikach PDF innych firm, ponieważ nie obsługuje niczego zbliżonego do pełnego standardu PDF i ulega awarii. Jeśli jednak nie potrzebujesz tych funkcji, Zend PDF działa całkiem nieźle i ma dobrą obsługę UTF-8.
chrishiest i

3

Osobiście generuję XSL: FO z PHP i używam Apache FOP do konwersji do formatu PDF. Nie jest to rozwiązanie natywne dla PHP, też niezbyt wydajne, ale działa dobrze, nawet jeśli musisz wygenerować plik PDF z bardzo złożonymi układami.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.