Konwertuj HTML + CSS do PDF [zamknięty]

zamknięte. to pytanie nie spełnia wytycznych dotyczących przepełnienia stosu . Obecnie nie przyjmuje odpowiedzi.

chcesz poprawić to pytanie? Update the pytanie więc to on-topic {[3] } dla przepełnienia stosu.

Zamknięte 4 lata temu .

Popraw to pytanie

Mam dokument HTML (nie XHTML), który renderuje dobrze w Firefoksie 3 i IE 7. Używa dość podstawowego CSS do stylizacji i renderuje dobrze w HTML.

Jestem teraz po sposób, aby przekształcić go do PDF. Próbowałem:

  • DOMPDF : miał ogromne problemy z tabelami. Uwzględniłem moje duże zagnieżdżone tabele i to pomogło (zanim to tylko zużywało do 128M pamięci, a następnie umierało--to mój limit pamięci w php.ini) ale to robi kompletny bałagan tabel i nie wydaje się, aby uzyskać obrazy. Tabele były tylko podstawowymi rzeczami z niektórymi stylami obramowania, aby dodać kilka linii w różnych punktach; {]}
  • HTML2PDF i HTML2PS : właściwie miałem więcej szczęścia z to. Renderował niektóre obrazy (Wszystkie obrazy są adresami URL Wykresów Google), a formatowanie tabeli było znacznie lepsze, ale wydawało się, że ma jakiś problem ze złożonością, którego jeszcze nie rozgryzłem i wciąż umierał z nieznanymi błędami node_type (). Nie wiem, gdzie się stąd udać; i
  • Htmldoc : wydaje się, że to działa dobrze na podstawowym HTML, ale prawie nie ma wsparcia dla CSS w ogóle, więc trzeba zrobić wszystko w HTML (nie wiedziałem, że to jeszcze 2001 w Htmldoc-land...) więc to bezużyteczny dla mnie.

Próbowałem aplikacji Windows o nazwie Html2Pdf Pilot, który rzeczywiście zrobił całkiem przyzwoitą robotę, ale potrzebuję czegoś, co przynajmniej działa na Linuksie i najlepiej działa na żądanie przez PHP na serwerze WWW.

Czego mi brakuje lub Jak mogę rozwiązać ten problem?

Author: cletus, 2008-12-24

30 answers

Ważne: Należy pamiętać, że ta odpowiedź została napisana w 2009 roku i może nie być najbardziej opłacalnym rozwiązaniem dzisiaj w 2019 roku. Alternatywy Online są dziś lepsze niż wtedy.

Oto niektóre usługi online, z których możesz korzystać:


Spójrz na PrinceXML .

Jest to zdecydowanie najlepszy konwerter HTML/CSS na PDF, chociaż nie jest darmowy (ale hej, Twoje programowanie może też nie być wolne, więc jeśli zaoszczędzisz 10 godzin pracy, jesteś w domu wolny (ponieważ musisz również wziąć pod uwagę, że alternatywne rozwiązania będą wymagały skonfigurowania dedykowanego serwera z odpowiednim oprogramowaniem) {]}

O tak, czy wspomniałem, że to pierwszy (i chyba jedyny) HTML2PDF rozwiązanie, które robi pełne ACID2 ?

Próbki PrinceXML

 562
Author: SchizoDuckie,
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
2019-01-17 13:46:33

Spójrz na wkhtmltopdf . Jest open source, oparty na webkit i darmowy.

Napisaliśmy mały tutorial tutaj .

Edytuj( 2017 ):

[1]} gdyby miał coś dzisiaj zbudować, nie poszedłbym już tą drogą.
Ale użyłby http://pdfkit.org / zamiast tego.
Prawdopodobnie pozbawia go WSZYSTKICH zależności od nodejs, aby działał w przeglądarce.
 669
Author: Mic,
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
2016-12-23 11:07:35

Po pewnym dochodzeniu i ogólnym ciągnięciu włosów rozwiązaniem wydaje się HTML2PDF . DOMPDF zrobił straszną robotę z tabelami, obramowaniami, a nawet umiarkowanie skomplikowanym układem i htmldoc wydaje się dość solidny, ale jest prawie całkowicie ignorantem CSS i nie chcę wracać do robienia układu HTML bez CSS tylko dla tego programu.

HTML2PDF wyglądał najbardziej obiecująco, ale ciągle miałem ten dziwny błąd dotyczący argumentów odniesienia null do node_type. I w końcu znalazłem na to rozwiązanie. Zasadniczo PHP 5.1.x działał poprawnie z regex repeats (preg_replace_*) na łańcuchach o dowolnym rozmiarze. PHP 5.2.1 wprowadził php.dyrektywa ini Config o nazwie pcre.backtrack_limit . To, co robi ten parametr konfiguracyjny, ogranicza długość łańcucha, dla którego dopasowanie jest wykonywane. Dlaczego to zostało wprowadzone Nie wiem. Wartość domyślna została wybrana jako 100 000. Dlaczego tak niska wartość? Znowu, nie mam pojęcia.

A bug was Bug against PHP 5.2.1 for this , który jest nadal otwarty prawie dwa lata później .

Przerażające jest to, że gdy limit zostanie przekroczony, wymiana po prostu po cichu zawodzi. Przynajmniej gdyby błąd został podniesiony i zalogowany, miałbyś jakieś wskazówki, co się stało, dlaczego i co zmienić, aby to naprawić. Ale nie.

Więc mam plik HTML 70k do przekształcenia w PDF. Wymaga następującego php.ustawienia ini:

  • pcre.backtrack_limit = 2000000; # prawdopodobnie więcej niż potrzebuję, ale to jest OK
  • memory_limit = 1024M; # yes, jeden gigabajt; and
  • max_execution_time = 600; # tak, 10 minut.

Teraz bystry czytelnik może zauważyć, że mój plik HTML jest mniejszy niż 100k. jedynym powodem, dla którego mogę się domyślać, dlaczego trafiłem na ten problem, jest to, że html2pdf wykonuje konwersję do xhtml w ramach procesu. Być może to mnie przejęło (chociaż prawie 50% wzdęcia wydaje się dziwne). Niezależnie od przypadku powyższe zadziałało.

Teraz, html2pdf to wieprz zasobów. Mój plik 70K zajmuje około 5 minut i co najmniej 500-600m pamięci RAM, aby utworzyć 35-stronicowy plik PDF. Niestety nie jest wystarczająco szybki (zdecydowanie) na pobranie w czasie rzeczywistym, a zużycie pamięci ustawia współczynnik wykorzystania pamięci w kolejności 1000-do-1 (600m RAM dla pliku 70k), co jest całkowicie Śmieszne.

Niestety, to najlepsze, co wymyśliłem.

 152
Author: cletus,
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
2015-11-24 02:08:31

Dlaczego nie spróbujesz mPDF w wersji 2.0 ? Użyłem go do tworzenia dokumentu PDF. Działa dobrze.

Tymczasem mPDF jest w wersji 5.7 i jest aktywnie utrzymywany, w przeciwieństwie do HTML2PS/HTML2PDF

Ale pamiętaj, że dokumentacja może być naprawdę trudna w obsłudze. Na przykład spójrz na tę stronę: https://mpdf.github.io/.

Bardzo podstawowe zadania wokół html do pdf, można zrobić z tej biblioteki, ale bardziej złożone zadania zajmie trochę czasu czytanie i" zrozumienie " dokumentacji.

 127
Author: Karthick,
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
2016-08-25 12:06:03

1) Użyj MPDF !

A) ekstrakt w yourfolder

B) Utwórz plik .php W yourfolder i wstaw taki kod:

<?php
include('../mpdf.php');
$mpdf=new mPDF();
$mpdf->WriteHTML('<p style="color:red;">Hallo World<br/>Fisrt sentencee</p>');
$mpdf->Output();   exit;
 ?>

C) otwórz plik .php z twojej przeglądarki




2) Użyj pdfToHtml !

1) extract pdftohtml.exe do folderu głównego:

2) wewnątrz tego folderu, w anyfile.plik php, umieść ten kod (zakładając, że jest przykład źródłowy.pdf too):

<?php
$source="example.pdf";
$output_fold="FinalFolder";

    if (!file_exists($output_fold)) { mkdir($output_fold, 0777, true);}
$result= passthru("pdftohtml $source $output_fold/new_filename",$log);
//var_dump($result); var_dump($log);
?>

3) enter FinalFolder , a tam będą przekonwertowane pliki (tyle stron, ile miał źródłowy PDF..)

 72
Author: tazo todua,
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
2016-08-26 06:49:41

Checkout TCPDF . Ma kilka funkcji HTML do PDF, które mogą wystarczyć do tego, czego potrzebujesz. To również za darmo!

 57
Author: Darryl Hein,
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
2016-12-09 17:43:14

Żeby podbić wątek, wypróbowałem DOMPDF i zadziałało idealnie. Użyłem DIV i innych elementów blokowych do pozycjonowania wszystkiego, trzymałem go ściśle CSS 2.1 i grałem bardzo ładnie.

 33
Author: Filip Dupanović,
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
2019-02-19 14:05:59

Proponuję DocRaptor (który używa PrinceXML jako "silnika")

 32
Author: aRahmanS29,
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
2015-01-24 11:25:42

Już o tym wspomniano, ale chciałbym tylko potwierdzić, że mpdf jest najłatwiejszym, najpotężniejszym i najbardziej darmowym konwerterem HTML na pdf. Niebo jest naprawdę granicą. Możesz nawet wygenerować plik pdf z dynamicznymi danymi generowanymi przez użytkowników.

Na przykład klient chciał systemu CMS, aby mógł zaktualizować tracklistę muzyki, którą grał w swoim klubie. To nie był problem, ale chciał również, aby użytkownicy mogli pobrać .pdf playlisty, a więc ten pdf do pobrania musiał być zaktualizowana również przez cms. Dzięki mpdf, z kilkoma prostymi pętlami i zmiennymi interpersonalnymi mogłem to zrobić. Coś, co wydawało mi się, że zajmie mi tygodnie dosłownie Zajęło mi minuty.

Świetny Artykuł , który pomógł mi zacząć.

 31
Author: Starkers,
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
2019-04-24 07:58:33

Dobre wieści! Snappy !!

Snappy to bardzo łatwa open source biblioteka PHP5, pozwalająca na generowanie miniaturek, migawek lub PDF z adresu url lub strony html. I... używa excellent webkit-based wkhtmltopdf

Enjoy! ^_^

 30
Author: Paulo Coghi,
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
2011-11-21 20:23:29

Cóż, jeśli chcesz znaleźć idealną bibliotekę konwertera XHTML+CSS do PDF, zapomnij o tym. To dalekie od możliwości. Bo to tak, jakby znaleźć idealną przeglądarkę (silnik renderowania XHTML + CSS). Mamy jakąś? IE czy FF?

Odniosłem sukces z DOMPDF. Chodzi o to, że musisz zmodyfikować kod HTML+CSS, aby pasował do sposobu, w jaki Biblioteka ma działać. Poza tym, mam całkiem dobre wyniki.

Patrz poniżej:

Oryginał HTML

Konwersja HTML do PDF

 27
Author: datasn.io,
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
2013-05-08 05:41:49

HTML2PDF i HTML2PS , o których pierwotnie wspomniano w otwierającym poście, mówiło się o pakiecie z 2009 roku z tym linkiem

Ale jest lepszy HTML2PDF

Jest oparty na TCPDF, choć częściowo jest w języku francuskim.

Możesz mieć nagłówki tabeli lub stopki, które powtarzają się na stronach i mają numery stron i całkowitą liczbę stron. Zobacz jego przykłady . Używam go od ponad trzech lat i polecam.

 26
Author: Luke Wenke,
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
2018-06-12 04:29:19

Używam fpdf do tworzenia plików PDF przy użyciu PHP. Do tej pory dobrze mi idzie tworzenie prostych wyjść.

 23
Author: stealthyninja,
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
2018-11-11 16:07:20

Jest tutorial o devzone Zend na Generowanie pdf z php (część 1, Część 2 ) bez żadnych zewnętrznych bibliotek. Nigdy nie zaimplementowałem tego rodzaju rozwiązania, ale ponieważ jest to całe php, może okazać się bardziej elastyczne w implementacji i debugowaniu.

 22
Author: yoavf,
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
2008-12-24 09:46:11

Wzmianka Darryla Heina o TCPDF jest prawdopodobnie świetnym pomysłem. Kod Nicoli Asuni jest dość poręczny i potężny. Jedynym zabójcą jest to, że jeśli kiedykolwiek planujesz Scalanie plików PDF z wygenerowanym plikiem PDF, nie ma on tych funkcji. Trzeba by utworzyć plik PDF, a następnie scalić go za pomocą czegoś takiego jak PDFTK autorstwa Sida stewarda (www.pdflabs.com/tools/pdftk-the-pdf-toolkit/).

 17
Author: Arachnid,
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
2016-07-28 08:51:15

Spróbuj pobrać najnowszy nocny dompdf build - używałem starszej wersji, która była strasznym Wieprzem zasobów i zajęło mi wieczność renderowanie mojego pdf. Po złapaniu nocnego z TUTAJ .

Wygenerowanie pliku PDF zajęło tylko kilka sekund - i był równie ładnie renderowany jak w PrinceXML / Docraptor . Wygląda na to, że poważnie zoptymalizowali kod dompdf odkąd go ostatnio użyłem!

 16
Author: Arni J,
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-01-02 18:38:18

Pod względem kosztów, Korzystanie z usługi internetowej (API) może w wielu przypadkach być bardziej rozsądnym podejściem. Dodatkowo, poprzez outsourcing tego procesu odciążasz własną infrastrukturę / zaplecze i - pod warunkiem, że korzystasz z renomowanej usługi-zapewniasz zgodność z dostosowywaniem standardów internetowych, czasem sprawności, krótkim czasem przetwarzania i szybkim dostarczaniem treści.

Zrobiłem kilka badań na większość usług internetowych Obecnie na rynku, proszę znaleźć poniżej API, które uważam, że warto wspomnieć na ten temat wątku, w zamówieniu opartym na stosunku cena / wartość. Wszystkie z nich oferują wstępnie skomponowane klasy i pakiety PHP.

  1. pdflayer.com - koszt: $ - jakość: ☆ ☆ ☆ ☆
  2. docraptor.com - koszt: $ $ $ - jakość: ☆ ☆ ☆ ☆ ☆
  3. pdfcrowd.com - koszt: $ $ - jakość: ☆ ☆ ☆

Jakość:

Mając wysokiej jakości silnik PrinceXML jako podstawę, DocRaptor wyraźnie oferuje najlepszą jakość PDF, zwracając wysoce dopracowany i dobrze przekonwertowane dokumenty PDF. Jednak usługapdflayer API jest tutaj dość blisko. Pdfcrowd niekoniecznie oznacza jakość, ale szybkość przetwarzania.

Koszt:

Pdflayer.com - jak wskazano powyżej, najbardziej opłacalną opcją jest pdflayer.com, oferując całkowicie bezpłatny plan subskrypcji dla 100 miesięcznych plików PDF i subskrypcji premium w zakresie od $9.99 - $119.99. cena za 10 000 miesięcznych dokumentów PDF $ 39.99.

Docraptor.com - oferowanie 7-dniowego bezpłatnego okresu próbnego. Plany subskrypcji Premium wahają się od $15 - $2250. cena za 10 000 miesięcznych dokumentów PDF wynosi ~ $300.00.

Pdfcrowd.com - oferowanie 100 plików PDF raz za darmo. Plany subskrypcji Premium wahają się od $9 - $89. cena za 10 000 miesięcznych dokumentów PDF wynosi ~ $49.00.

Użyłem wszystkich trzech z nich i ten tekst ma pomóc każdemu zdecydować bez konieczności płacenia za wszystkie. Ten tekst nie został napisany, aby poprzeć jeden produkt i nie mam powiązania z żadnym z produktów.

 13
Author: Frank,
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
2016-02-11 18:00:11

Jeśli masz dostęp do wiersza poleceń, możesz użyć PhantomJS do utworzenia PDF z URL (zdalnego lub lokalnego).

To działa naprawdę dobrze i jest darmowym rozwiązaniem.

Spójrz na ten przykład skrypt stworzony dla tego konkretnego problemu.

 12
Author: Hjortlund,
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
2015-01-24 11:23:47

To pytanie jest już dość stare, ale nie widziałem nikogo wspominającego CutyCapt więc będę:)

CutyCapt

CutyCapt jest małym wieloplatformowym narzędziem wiersza poleceń do przechwytywanie renderowania strony internetowej przez WebKit na różne wektory i formaty Bitmapowe, w tym SVG, PDF, PS, PNG, JPEG, TIFF, GIF i BMP

 11
Author: Koen.,
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-02-20 15:19:17

Polecam TCPDF lub DOMPDF, w tej kolejności.

 11
Author: criss_ae,
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
2018-11-11 16:50:56

Nie sądzę, aby Klasa php była najlepsza do renderowania strony xHtml z css.

Co się stanie, gdy pojawi się nowa zasada css? (wkrótce css 3.0...)

Najlepszym sposobem renderowania strony html jest, oczywiście, przeglądarka. Firefox 3.0 może natywnie "drukować" w formacie pdf, aby z niego korzystać opracował rozszerzenie (drukowanie z wiersza poleceń). Tutaj GO znajdziesz.

W każdym razie, nadal istnieje wiele problmes runninr firefox po prostu jako konwerter pdf...

W moment, myślę, że wkhtmltopdf jest najlepszy (to jest ten używany przez przeglądarkę safari), szybko, szybko, awesome. Tak, opensource też... Zobacz

 9
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-05-12 21:02:00

Opracowałem publiczne API do tworzenia plików PDF ze stron internetowych. Ma ładną klasę klienta PHP, która sprawia, że jest bardzo łatwa w użyciu. Używa wkhtmltopdf do renderowania plików PDF w chmurze.

Nie trzeba niczego specjalnego w HTML. Nie ma potrzeby stosowania bezwzględnych adresów URL w linkach images / css / js. Działa również na localhost (dev machine).

Obecnie usługa ma punkty końcowe w 4 regionach platformy Azure: US East, US West, EU North, Southeast Asia.

Jest szybki, ponieważ używa zastrzeżonego protokołu do prześlij zawartość strony internetowej do API w celu konwersji do formatu PDF.

Jest niezawodny, ponieważ wszystkie punkty końcowe są zrównoważone obciążeniem.

Darmowe konto dostępne do testowania lub niskiego wykorzystania. Szczegóły na stronie:

Https://rotativahq.com

 9
Author: Giorgio Bozio,
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
2016-06-22 14:22:52

Może spróbuj użyć Tidy przed przekazaniem pliku do konwertera. Jeśli jeden z rendererów dławi się jakimś problemem HTML( takim jak unclosed tag), może to pomóc.

 8
Author: PhiLho,
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
2008-12-24 09:16:29

Dobre renderowanie nic nie znaczy. Czy to się sprawdza?

Wszystkie przeglądarki robią wszystko, co mogą, aby po prostu pokazać coś na ekranie, bez względu na to, jak złe wejście. I oczywiście nie robią tego samego. Jeśli chcesz renderować tak samo jak FireFox, możesz użyć jego silnika renderującego. Istnieją Generatory pdf dla niego. To strasznie dużo pracy.

 7
Author: Stephan Eggermont,
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
2008-12-24 09:09:27

Chociaż rozwiązań jest już wiele, polecam dwa:

  1. HTM2PDF - oferuje API do konwersji HTML do PDF, a także ma SDK PHP, co sprawia, że jest bardzo łatwy do wdrożenia w PHP; oferuje wybór lokalizacji serwerów w Europie, Azji i USA
  2. PDFmyURL - oferuje API, które robi URL i HTML do PDF, jak również, z mniej więcej taką samą funkcjonalnością jak HTM2PDF, ale działa na zrównoważonym obciążeniem krajobraz i został wokół trochę dłużej

Rzecz, która różni się w tych dwóch API od wszystkich wcześniej wymienionych rozwiązań, jest to, że-oprócz konwersji HTML do PDF za pomocą CSS i JavaScript-oferuje również zarządzanie prawami PDF, znak wodny i szyfrowanie. Dlatego jest to rozwiązanie typu "wszystko w jednym" dla tych, którzy chcą zacząć biegać po ziemi.

Zastrzeżenie: pracuję dla Kaiomi, firmy, która obsługuje obie te strony internetowe.

 7
Author: user1914292,
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-06-02 17:59:32

Czy konwersja HTML na PDF naprawdę musi wystąpić po stronie serwera przy użyciu PHP?

Właśnie natknąłem się na jsPDF , rozwiązanie po stronie klienta przy użyciu HTML5 / JavaScript. Kod licencjonowany przez MIT jest również na GitHub .

 5
Author: Oliver Schafeld,
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
2013-08-29 15:06:44

TCPDF działa dobrze, bez zależności, jest darmowy i stale poprawiany. Ma rozsądną prędkość, jeśli dostarczona zawartość HTML / CSS jest dobrze sformatowana. Zwykle generuję z 50-300 kB wejścia HTML (w tym CSS) i uzyskuję wyjście PDF w ciągu 1-3 sekund z 10-15 stronami PDF.

Zdecydowanie zalecam używanie tidy jako HTML pretty formatter przed wysłaniem czegokolwiek do TCPDF.

 5
Author: lubosdz,
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
2013-12-08 11:09:22

Wypróbowałem wiele różnych bibliotek dla PHP. Wszystkie wymienione próbowałem. Moim zdaniem biblioteka TCPDF jest najlepszym kompromisem wydajności/użyteczności. Jest bardzo prosty w instalacji i użytkowaniu, a także dobra wydajność w małych średnich aplikacjach. Jeśli potrzebujesz wysokiej wydajności i bardzo dużego dokumentu PDF, użyj modułu Zend_PDF , ale przygotuj się na twarde kodowanie!

 4
Author: trullallero,
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
2013-05-22 06:47:40

Web API

Jeśli są ludzie, którzy zawsze szukają tego rodzaju rzeczy, istnieje darmowa strona , która pozwala konwertować kod html i strony do formatu pdf. Istnieje również (bardzo mały) api, które pozwala uzyskać plik pdf z adresu url.

Sprawdź to tutaj

 3
Author: Superdrac,
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
2020-06-20 09:12:55

Nie PHP , Ale a Biblioteka Java , która robi to:

Latający spodek pobiera XML lub XHTML i stosuje zgodny z CSS 2.1 arkusze stylów do niego, w celu renderowania do PDF

Można go używać z PHP poprzez system() lub podobne wywołanie. Chociaż wymaga XML dobrze sformatowanego input.

 2
Author: Ivan Kurmanov,
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-01-02 18:37:09