Konwersja HTML do PDF za pomocą PHP? [duplikat]

Możliwy duplikat:
Konwertuj HTML + CSS do PDF za pomocą PHP?

Czy można przekonwertować stronę HTML na PDF za pomocą PHP, a jeśli tak, to jak to zrobić?

W szczególności strona jest fakturą generowaną dynamicznie. Więc chciałbym go załadować za pomocą:

http://example.com/invoices/3333

I wyjście HTML musiałoby zostać przekonwertowane na PDF.

Każda dobra biblioteka, która to zrobi, będzie w porządku.

Author: Community, 2009-04-09

8 answers

Jeśli chcesz Utwórz pdf z php, pdflib pomoże Ci (jak sugerują inni).

Else, if you want to Konwertuj strona HTML do PDF przez PHP, Znajdziesz tu mały problem.. Od 3 lat staram się robić to najlepiej jak potrafię.

Więc opcje, które znam to:

DOMPDF: Klasa php, która zawija html i buduje pdf. Działa dobrze, konfigurowalny (jeśli znasz php), oparty na pdflib, o ile pamiętam racja, potrzeba nawet trochę CSS. Zła wiadomość: powoli, gdy html jest duży lub złożony.

HTML2PS: taki sam jak DOMPDF, ale ten konwertuje najpierw do pliku.ps (ghostscript), a następnie do dowolnego formatu, jakiego potrzebujesz (pdf, jpg, png). Dla mnie jest trochę lepszy niż dompdf, ale ma ten sam problem z prędkością .. ale lepsza kompatybilność z CSS.

Te dwie klasy są php, ale jeśli możesz zainstalować jakieś oprogramowanie na serwerze i uzyskać do niego dostęp poprzez passthru () lub system (), daj znać do tych też:

Wkhtmltopdf : oparty na webkit (wrapper safari), jest naprawdę szybki i wydajny.. wydaje się, że jest to najlepszy (atm) do konwersji stron html na pdf w locie; zajmuje tylko 2 sekundy dla 3-stronicowego dokumentu xHTML z CSS2. W każdym razie jest to najnowszy projekt, google.strona kodowa jest często aktualizowana.

Htmldoc: ten jest czołgiem, nigdy się nie zatrzymuje/nie wywala.. projekt wygląda martwy od 2007 roku, ale w każdym razie, jeśli nie potrzebujesz zgodności CSS to może być dla ciebie miłe.

 58
Author: Strae,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-31 01:23:24

A co z TCPDF?

Ma wiele funkcji, a jedną z zalet za jego pomocą można konwertować html na pdf w locie

 5
Author: norewind,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-04 13:53:13

Osobiście nie ufam wszystkim tym usługom, które są oferowane za darmo. Oto aplikacja, którą możesz pobrać: http://www.tufat.com/script19.htm

 3
Author: soulmerge,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-09 07:49:40

Możesz użyć PDFlib . Jest dokumentacja php.net jak go wykorzystać . Niestety, musisz żyć z dość natrętnym znakiem wodnym, jeśli nie kupisz licencji na PDFlib.

 1
Author: Michael Klement,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-09 07:46:37

Również ten, który wykonuje zadanie Googla: html2pdf

 1
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-09 12:04:41

Dompdf: https://github.com/dompdf/dompdf

Pobiera łańcuch wejściowy html i zwraca łańcuch pdf.

Nie jest to jakość na poziomie przeglądarki i ma problemy z css, ale działa wystarczająco dobrze dla prostych dokumentów tekstowych.

 1
Author: stefs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-07 22:49:00

Tak, absolutnie.

Istnieją gotowe rozwiązania, które możesz kupić, które zaakceptują wejście HTML i przekonwertują plik eh za Ciebie.

Istnieje również wspólny PDFLib , którego możesz użyć do generowania plików PDF za pomocą PHP, ale wymaga to ręcznego tworzenia ich przez ustawienie wszystkich elementów na stronie.

To jest kolejny użyłem, który był całkiem ładny

 0
Author: jerebear,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-09 07:46:34

Problemy z klasami php są AFAIK 2:

  1. Szybkość: PHP zajmuje dużo czasu, aby przeanalizować strukturę html i przekonwertować w pdf za pomocą pdflib
  2. niezawodność: kiedy pojawi się nowy atrybut css lub style, jak zachować aktualizację skryptu? ile czasu?

Myślę, że jedynym sposobem na dokładną konwersję jest użycie wrappera przeglądarki becose, dla definicji, zawsze będzie lepszym czytnikiem html.

Proponuję inny link z jakimś porównaniem: LINK Tam czytałem o wkhtmltopdf.. daj przeczytać do wszystkich komentarzy też, wiele innych sposobów są tam...

 0
Author: Strae,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-09 13:33:35