Używam wkthmltopdf do konwertowania dokumentów HTML na PDF w locie na moim serwerze sieciowym Linux. Program początkowo wymagał X11 lub podobnego serwera X do prawidłowego działania, ale dzięki wielu żądaniom programistów, aby ten działał na serwerach bez GUI, jestem prawie pewien, że uruchamia wirtualny serwer X w wersji statycznej . Używałem statycznej (samodzielnej) wersji programu i działa świetnie! Umieściłbym plik wykonywalny w folderze i uruchomiłbym:
./wkhtmltopdf file1.html file2.pdf
Chciałbym jednak zainstalować ten program w całym systemie. Użyłem apt-get install wkhtmltopdf
(właśnie zainstalowałem wczoraj), a ponieważ używam systemu 64-bitowego, potrzebowałem również apt-get install ia32-libs
. Po instalacji mogę znaleźć taką wersję:
wkhtmltopdf --version
wynik:
Name:
wkhtmltopdf 0.9.9
License:
Copyright (C) 2008,2009 Wkhtmltopdf Authors.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There is NO
WARRANTY, to the extent permitted by law.
Authors:
Written by Jakob Truelsen. Patches by Mário Silva, Benoit Garret and Emmanuel
Bouthenot.
Teraz, gdy próbuję uruchomić program zainstalowany przez aptitude, pojawia się następujący błąd:
wkhtmltopdf: cannot connect to X server
Czy ktoś wie, jak mogę to naprawić? Wydaje mi się, że w tej wersji brakuje wirtualnego serwera X lub czegoś takiego.
źródło
/usr/bin/
katalogu, możesz go użyć z dowolnego miejsca. Dodali wirtualny x-serwer do statycznego pliku wykonywalnego, więc nie ma potrzeby tworzenia skryptu opakowującego.If you get the error "Cannot connect to X server" then continue to number 6.
ma oznaczać stwierdzenie w numerze 6 ? Jestem tym bardzo zdezorientowany. Czy chcesz powiedzieć, żeby przejść do numeru 7?To rozwiązało problem:
źródło
sudo yum install xorg-x11-server-Xvfb
odp.sudo dnf install xorg-x11-server-Xvfb
.Próbowałem to zrobić,
sudo apt-get install wkhtmltopdf
ale bez powodzenia. Zamiast tego polecam spróbować:Pobierz najnowszy plik wykonywalny (.11 rc1):
wget https://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.11.0_rc1-static-i386.tar.bz2
rozpakuj to:
tar -vxf wkhtmltopdf-0.11.0_rc1-static-i386.tar.bz2
zmień jego nazwę:
mv wkhtmltopdf-i386 wkhtmltopdf
chmod do pliku wykonywalnego:
chmod a+x wkhtmltopdf
umieść go w / usr / bin:
sudo mv wkhtmltopdf /usr/bin
źródło
https://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.9.9-static-i386.tar.bz2
Właśnie to zrobiłem:
1- Aby pobrać zależności wkhtmltopdf
# apt-get install wkhtmltopdf
2- Pobierz ze źródła
# wget http://downloads.sourceforge.net/project/wkhtmltopdf/xxx.deb
# dpkg -i xxx.deb
3 Spróbuj
# wkhtmltopdf http://google.com google.pdf
Działa dobrze
To działa!
źródło
apt-get install -f
po zainstalowaniu pakietu, aby uzyskać zależności. W przeciwnym razie działało jak urok. Znacznie wolę tę metodę od innych opisanych.wget -q http://downloads.sourceforge.net/project/wkhtmltopdf/0.12.2.1/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
po czym nastąpiłosudo dpkg --install wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
sudo mv wkhtmltopdf /usr/bin
z/usr/local/bin/
katalogu, ale to działało świetnie! Wypróbowałem każdą inną metodę na tej stronie bez powodzenia ...Znalazłem sposób na rozwiązanie tego problemu bez fałszywego serwera X. W najnowszej wersji wkhtmltopdf nie potrzebujesz X serwera do pracy, ale nie ma go w oficjalnych repozytoriach Linuksa.
Rozwiązanie dla Ubuntu 14.04.4 LTS (zaufane) i386
Rozwiązanie dla Ubuntu 14.04.4 LTS (zaufane) amd64
Użytkownik felixhummel otrzymał bardzo dobre rozwiązanie, ale repozytorium z utylite uległo zmianie.
źródło
Rozwijając odpowiedź Tymoteusza ...
Jeśli jesteś programistą internetowym i chcesz używać wkhtmltopdf jako części swojej aplikacji internetowej, możesz po prostu zainstalować go w swoim
/usr/bin/
folderze w następujący sposób:Możesz teraz uruchomić go w dowolnym miejscu za pomocą
wkhtmltopdf
.Osobiście korzystam z biblioteki Snappy w PHP. Oto przykład, jak łatwo jest utworzyć plik PDF:
źródło
Zaktualizuj do najnowszej wersji wkhtmltopdf z SourceForge (0.12 w chwili pisania tego tekstu). Do działania nie jest potrzebny serwer X.
Przykład dla Ubuntu 14.04:
źródło
dla 14.04.1-Ubuntu https://wkhtmltopdf.org/downloads.html
źródło
źródło
Problem prawdopodobnie występuje w starej wersji wkhtmltopdf - wersja 0.9 z repozytorium dystrybucji wymaga uruchomionego X serwera, ale obecna wersja - 0.12.2.1 tego nie wymaga - może działać bezgłośnie.
Pobierz pakiet do swojej dystrybucji ze strony http://wkhtmltopdf.org/downloads.html i zainstaluj go - dla Ubuntu:
źródło
wkhtmltopdf
>0.11
nie ma tegoX-server
problemu.Więc instalacja
0.12.2.1
na serwerze linux.Najpierw zainstaluj serwer xvfb:
Pobierz potrzebną wersję wkhtmltopdf ze strony http://wkhtmltopdf.org/downloads.html
Zainstaluj wkhtmltopdf:
lub zainstaluj z
wget
Zainstaluj zależność (w razie potrzeby):
Utwórz łącze symboliczne w
/usr/local/bin/
:Teraz spróbuj poniżej i powinno działać,
źródło
Właśnie doszedłem do wniosku, że mogę po prostu przenieść statyczny plik wykonywalny do
/usr/bin/
katalogu i uruchomić go z dowolnego miejsca.źródło
Zalecane jest użycie co najmniej 0.12.2.1.
Począwszy od wkhtmltopdf> = 0.12.2 nie wymaga już X serwera ani emulacji. Możesz pobrać nową wersję ze strony http://wkhtmltopdf.org/downloads.html
źródło
Postępowałem zgodnie z instrukcjami tutaj i sprawiłem, że wkhtmltopdf działa dla mnie, ale chciałbym zaoferować trochę perspektywy, którą odkryłem, wykonując swój własny mały taniec z
wkhtmltopdf
-xvfb
.Jest to ważne, ponieważ ten sam powód, który powoduje, że
cannot connect to X server
wysyła niesławny błąd, powoduje również, że działa z ograniczeniami serwera, nawet jeśli udostępnisz mu serwer X. Te ograniczenia obejmują niemożność korzystania z wielu źródeł danych wejściowych, ustawiania nagłówka i stopki itp. (Sprawdź sekcję Ograniczona funkcjonalność w instrukcji ).wkhtmltox
sam w sobie nie wymaga X11, jednak korzysta z bibliotek QT, które to robią. W nowszych wersjach programu wkthmltox programiści stworzyli łatkę dla QT, która pozwala mu działać z X11.Obecnie niektóre wersje są zbudowane przeciwko poprawionemu QT, a inne nie. Możesz sprawdzić swoją wersję, uruchamiając
wkhtmltopds --version
. Na końcu powinna znajdować się linia z napisemCompiled against wkhtmltopdf patched qt.
Podsumowując, jeśli zainstalujesz i użyjesz wersji korzystającej z poprawionych bibliotek, powinna ona działać na serwerze linux bez
xvfb
serwera, co mogę potwierdzić.źródło
rozwiązanie dla Centos7 :
Napotykamy ten problem w kontenerach dockerowych, a powyższa instalacja zawiera wkhtmltopdf z poprawionym QT
źródło
sudo rpm -Uvh https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.2.1/wkhtmltox-0.12.2.1_linux-centos7-amd64.rpm
Uwaga: Twój plik może mieć format
wkhtmltopdf.sh
lubwkhtmltopdf
, sprawdź go w drugim krokuMusisz skopiować go do katalogu: / usr / local / bin , uczynić go wykonywalnym i dodać dowiązanie symboliczne wkhtmltopdf.sh takie jak:
1- polecenie:
2 - wstaw plik binarny do katalogu / usr / bin, aby przeglądarka nie miała uprawnień do wykonywania w tym katalogu. Musisz skopiować wkhtmltopdf.sh do katalogu / usr / local / bin, ponieważ przeglądarka ma uprawnienia w tym katalogu, takie jak:
3 - Po utworzeniu pliku binarnego ma pozwolenie na wykonanie, takie jak:
4 - więc teraz możesz przetestować, to działa tak:
sprawi, że pobierzesz plik pdf w bieżącym katalogu w twoim terminalu
5 - Opcjonalnie możesz teraz dodać dowiązanie symboliczne do swojego katalogu / usr / local / bin jak
źródło
/usr/bin/
/usr/bin/wkhtmltopdf
wkhtmltopdf http://www.google.com test.pdf
podpowiedź: szczegółowe informacje z tego linkuźródło
Wystarczy zainstalować wersję 0.12.4 lub nowszą. Wydaje się, że to rozwiązuje problem.
Zobacz Jak mogę zainstalować najnowszą wersję wkhtmltopdf w systemie Ubuntu 16.04? .
źródło
Jeśli skonfigurujesz wkhtmltopdf dla Rails lub Somethings w Centos, możesz wykonać następujące kroki:
W centos server bash.
wget link_of_wkhtmltopdf_rpm.rpm
rpm -ivh link_of_wkhtmltopdf_rpm.rpm
which wkhtmltopdf
=> Otrzymasz ścieżkę do wkhtmltopdf.
Konfiguracja dla wicked_pdf lub pdfkit ze ścieżką w kroku 4. To jest przykładowa konfiguracja z wickedpdf. config / initializers / wicked_pdf.rb
Zrestartuj serwer.
GOTOWE.
źródło
Do użytku 64-bitowego:
źródło
Po prostu powiedz serwerowi Qt, aby nie używał X:
źródło