Twój proces generowania PDF działa na wkhtmltopdf i przez lata sprawdzał się bez zarzutu — dopóki projekt nie został zarchiwizowany. Repozytorium przeszło w tryb tylko do odczytu 2 stycznia 2023 roku, więc nie pojawią się już żadne poprawki bezpieczeństwa, a starzejący się silnik WebKit, na którym działa narzędzie, nieprzewidywalnie renderuje nowoczesny CSS (flexbox, grid, właściwości niestandardowe). Jeśli Twoje raporty wychodzą teraz przesunięte albo nie możesz już uzasadnić uruchamiania niewspieranego pliku binarnego na serwerze produkcyjnym, potrzebujesz wspieranego zamiennika. W Windows tym zamiennikiem jest Total HTML Converter X.
Szybka odpowiedź: Dla prostego, statycznego HTML wkhtmltopdf nadal działa i pozostaje bezpłatny, ale jego projekt jest zarchiwizowany — brak poprawek bezpieczeństwa, a nowoczesny CSS renderuje się nieprzewidywalnie. Do wspieranej pracy produkcyjnej na serwerach Windows Total HTML Converter X oferuje aktualne renderowanie CSS, konwersję do PDF, DOC, TIFF i JPEG zarówno z plików, jak i z adresów URL na żywo, cichy wiersz poleceń oraz API COM/ActiveX wywoływane z ASP, PHP i .NET.
| Total HTML Converter X | wkhtmltopdf | |
|---|---|---|
| Aktywnie wspierany | Tak — produkt komercyjny z bieżącymi aktualizacjami | Nie — repozytorium zarchiwizowane i tylko do odczytu od 2 stycznia 2023 roku |
| Silnik renderowania | Aktualny silnik z pełną obsługą CSS 1/2, podziałami stron, dopasowaniem do szerokości oraz opcjonalnym silnikiem renderowania Chrome | Starzejąca się wersja WebKit; nowoczesny CSS (flexbox, grid) często renderuje się nieprawidłowo, bez szans na poprawki |
| Obsługa JavaScript | Tak — poprzez silnik renderowania Chrome (-engine chrome) | Ograniczona do zamrożonego silnika WebKit |
| Źródło danych wejściowych | Lokalne pliki HTML/MHT oraz adresy URL na żywo, wsadowo | Lokalne pliki i adresy URL |
| Formaty wyjściowe | PDF, DOC, RTF, XLS, TIFF, JPG, PNG, TXT | Tylko PDF i obrazy (PNG, JPG) |
| Wiersz poleceń | Tak — cichy plik binarny: bez interfejsu graficznego, bez okien dialogowych, bez wyskakujących komunikatów | Tak — narzędzie wiersza poleceń |
| API serwerowe | ActiveX/COM wywoływane z ASP, PHP, .NET, Python, Ruby, Java | Zewnętrzne bindingi językowe i wrappery, utrzymywane przez społeczność |
| Bezpieczeństwo PDF | Podpisy cyfrowe (X.509 PFX), szyfrowanie AES, hasła, flagi uprawnień | Podstawowe; brak podpisywania |
| Licencja | Komercyjna, jednorazowa licencja od $750, 30-dniowa bezpłatna wersja próbna | Bezpłatny, open source |
| System operacyjny | Windows 7/8/10/11 oraz Windows Server (IIS, Docker, Citrix, Wine) | Windows, Linux, macOS |
| Wsparcie | Wsparcie techniczne od CoolUtils | Tylko społeczność; projekt zarchiwizowany |
Trzeba oddać mu sprawiedliwość: wkhtmltopdf zapracował na swoją pozycję. Jest bezpłatny i open source, uruchamia się jednym poleceniem i daje się czysto zintegrować z każdym językiem, który potrafi wywołać polecenie systemowe. Przez dekadę był domyślną odpowiedzią na pytanie, jak zrenderować ten HTML do PDF na serwerze, a jego baza instalacji jest ogromna — niezliczone procesy fakturowania, raportowania i eksportu danych nadal wywołują go codziennie. Dla prostego, statycznego HTML — tabeli, stylizowanego paragonu, zwykłego raportu — nadal tworzy przyzwoity PDF bezpłatnie.
Jeśli Twoje szablony są proste i niezmienne, a akceptujesz uruchamianie zarchiwizowanego pliku binarnego, wkhtmltopdf wcale nie jest zepsuty. Problemem jest wszystko, co zmieniło się, odkąd projekt się zatrzymał: nowszy CSS, nowszy TLS, nowsze oczekiwania co do bezpieczeństwa.
Na serwerze Windows Total HTML Converter X to najbliższy zamiennik: zachowuje przepływ pracy z wiersza poleceń, który już masz zaskryptowany, dodaje wspierany silnik renderowania i rozszerza wyjście poza PDF. Zamieniasz jedno wywołanie CLI na inne i zyskujesz podpisywanie, szyfrowanie oraz dodatkowe formaty. Jeśli pracujesz na Linuksie lub macOS, Total HTML Converter X nic tu nie pomoże — działa wyłącznie na Windows — a wspieraną ścieżką jest tam headless Chrome lub Chromium, bezpośrednio albo poprzez wrapper.
Są dwa sposoby: uruchomić zewnętrznie plik binarny wiersza poleceń albo wywołać obiekt ActiveX/COM bezpośrednio w procesie. Uruchomienie zewnętrzne to najmniejsza zmiana względem procesu opartego na wkhtmltopdf — wystarczy podmienić plik binarny i składnię przełączników:
<?php
// Convert a local HTML file to PDF from PHP on Windows
exec('HtmlConverter.exe C:\www\invoice.html C:\pdf\invoice.pdf -c pdf -log C:\log\html.txt');
?>
Przełącznik -c pdf ustawia format docelowy; dodaj -combine, aby połączyć wiele plików w jeden PDF, albo -pfxfile i -pfxpass, aby podpisać wynik. Ponieważ plik binarny działa cicho, żadne okno dialogowe nie blokuje żądania sieciowego. Z poziomu klasycznego ASP lub .NET możesz zamiast tego utworzyć dołączony obiekt ActiveX/COM i uruchomić tę samą konwersję bezpośrednio w procesie, bez uruchamiania osobnego procesu potomnego dla każdej strony.
Tak — podaj konwerterowi adres URL zamiast ścieżki pliku, a narzędzie pobierze i wyrenderuje stronę na żywo:
HtmlConverter.exe http://www.example.com C:\pdf\page.pdf -c pdf -log C:\log\html.txt
To bezpośredni zamiennik wywołania URL do PDF w wkhtmltopdf. Ten sam wzorzec obejmuje obrazy — użyj -c jpg lub -c tiff, aby zrasteryzować stronę zamiast zapisywać PDF. Maska z symbolem wieloznacznym albo plik tekstowy -list pozwala jednemu poleceniu przetworzyć całą partię adresów URL lub plików lokalnych.
Total HTML Converter X jest licencjonowany za serwer od $750, a 30-dniowa wersja próbna jest w pełni funkcjonalna i bez ograniczeń — uruchom ją na stronach, które Twój obecny proces renderuje najgorzej, i porównaj PDF-y obok siebie. Ten sam silnik jest też dostępny jako desktopowy Total HTML Converter, gdy potrzebujesz GUI do jednorazowych zadań.
Pobierz wersję próbną i konwertuj pliki w kilka minut.
Nie jest wymagana karta kredytowa ani e-mail.