Ich habe wkthmltopdf verwendet , um HTML- Dateien auf meinem Linux-Webserver im laufenden Betrieb in PDF-Dokumente zu konvertieren. Das Programm benötigte ursprünglich X11 oder einen ähnlichen X-Server, um korrekt ausgeführt zu werden, aber aufgrund vieler Anfragen von Entwicklern, diesen auf Servern ohne GUI auszuführen, bin ich mir ziemlich sicher, dass es einen virtuellen X-Server in der statischen Version ausführt . Ich habe die statische (eigenständige) Version des Programms verwendet und es funktioniert großartig! Ich würde die ausführbare Datei in einen Ordner legen und ausführen:
./wkhtmltopdf file1.html file2.pdf
Ich möchte dieses Programm jedoch systemweit installieren. Ich habe das apt-get install wkhtmltopdf
(erst gestern installiert) verwendet und da ich auf einem 64-Bit-System laufe, brauchte ich auch apt-get install ia32-libs
. Nach der Installation kann ich die Version wie folgt finden:
wkhtmltopdf --version
Ausgabe:
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.
Wenn ich jetzt versuche, das über aptitude installierte Programm auszuführen, wird folgende Fehlermeldung angezeigt:
wkhtmltopdf: cannot connect to X server
Weiß jemand, wie ich das beheben kann? Ich denke, dieser Version fehlt ein virtueller X-Server oder so.
quelle
/usr/bin/
Verzeichnis verschieben, von überall aus verwenden. Sie haben der statischen ausführbaren Datei einen virtuellen X-Server hinzugefügt, sodass das Wrapper-Skript nicht erstellt werden muss.If you get the error "Cannot connect to X server" then continue to number 6.
bedeuten? Das verwirrt mich sehr. Wollen Sie damit sagen, dass Sie mit Nummer 7 fortfahren sollen?Dies löste das Problem für mich:
quelle
sudo yum install xorg-x11-server-Xvfb
resp.sudo dnf install xorg-x11-server-Xvfb
.Ich habe es versucht,
sudo apt-get install wkhtmltopdf
aber ohne Erfolg. Stattdessen empfehle ich Ihnen, Folgendes zu versuchen:Laden Sie die neueste ausführbare Datei herunter (.11 rc1):
wget https://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.11.0_rc1-static-i386.tar.bz2
dekomprimiere es:
tar -vxf wkhtmltopdf-0.11.0_rc1-static-i386.tar.bz2
benenne es um:
mv wkhtmltopdf-i386 wkhtmltopdf
chmod es zur ausführbaren Datei:
chmod a+x wkhtmltopdf
platziere es in / usr / bin:
sudo mv wkhtmltopdf /usr/bin
quelle
https://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.9.9-static-i386.tar.bz2
Habe es gerade geschafft:
1- Zum Herunterladen von wkhtmltopdf-Abhängigkeiten
# apt-get install wkhtmltopdf
2- Von der Quelle herunterladen
# wget http://downloads.sourceforge.net/project/wkhtmltopdf/xxx.deb
# dpkg -i xxx.deb
3- Versuchen Sie es
# wkhtmltopdf http://google.com google.pdf
Es funktioniert gut
Es klappt!
quelle
apt-get install -f
nach der Installation des Pakets ausführen , um die Abhängigkeiten zu erhalten. Ansonsten hat es wie ein Zauber funktioniert. Viel bevorzugen diese Methode gegenüber den anderen beschriebenen.wget -q http://downloads.sourceforge.net/project/wkhtmltopdf/0.12.2.1/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
gefolgt vonsudo dpkg --install wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
sudo mv wkhtmltopdf /usr/bin
aus dem/usr/local/bin/
Verzeichnis laufen , aber das hat super funktioniert! Ich habe jede andere Methode auf dieser Seite ohne GlückIch habe eine Methode gefunden, um dieses Problem ohne gefälschten X-Server zu lösen. In der neuesten Version von wkhtmltopdf wird kein X-Server für die Arbeit benötigt, aber nicht in offiziellen Linux-Repositories.
Lösung für Ubuntu 14.04.4 LTS (vertrauenswürdig) i386
Lösung für Ubuntu 14.04.4 LTS (vertrauenswürdig) amd64
Benutzer felixhummel hat eine sehr gute Lösung, aber das Repository mit utilite hat sich geändert.
quelle
Timotheus Antwort erweitern ...
Wenn Sie als Webentwickler wkhtmltopdf als Teil Ihrer Web-App verwenden möchten, können Sie es einfach
/usr/bin/
wie folgt in Ihrem Ordner installieren :Sie können es jetzt überall mit ausführen
wkhtmltopdf
.Ich persönlich benutze die Snappy- Bibliothek in PHP. Hier ist ein Beispiel dafür, wie einfach es ist, ein PDF zu erstellen:
quelle
Update auf die neueste wkhtmltopdf-Version von SourceForge (0.12 zum jetzigen Zeitpunkt). Zum Ausführen ist kein X-Server erforderlich.
Beispiel für Ubuntu 14.04:
quelle
für 14.04.1-Ubuntu https://wkhtmltopdf.org/downloads.html
quelle
quelle
Problem ist wahrscheinlich in der alten Version von wkhtmltopdf - Version 0.9 aus dem Distributionsrepository erfordert die Ausführung des X-Servers, die aktuelle Version - 0.12.2.1 erfordert dies jedoch nicht - kann ohne Kopf ausgeführt werden.
Laden Sie das Paket für Ihre Distribution von http://wkhtmltopdf.org/downloads.html herunter und installieren Sie es - für Ubuntu:
quelle
wkhtmltopdf
>0.11
hat diesesX-server
Problem nicht.Also
0.12.2.1
auf einem Linux Server installieren .Installieren Sie zuerst den xvfb-Server:
Die benötigte Version von wkhtmltopdf erhalten Sie unter http://wkhtmltopdf.org/downloads.html
Installieren Sie wkhtmltopdf:
oder installieren mit
wget
Installieren Sie die Abhängigkeit (falls erforderlich):
Erstellen Sie einen symblischen Link in
/usr/local/bin/
:Versuchen Sie es jetzt unten und es sollte funktionieren,
quelle
Ich habe gerade herausgefunden, dass ich die statische ausführbare Datei einfach in das
/usr/bin/
Verzeichnis verschieben und von überall ausführen kann.quelle
Es wird empfohlen, mindestens 0.12.2.1 zu verwenden.
Ab wkhtmltopdf> = 0.12.2 ist kein X-Server oder keine Emulation mehr erforderlich. Sie können eine neue Version von http://wkhtmltopdf.org/downloads.html herunterladen
quelle
Ich habe die Anweisungen hier befolgt und wkhtmltopdf für mich arbeiten lassen, aber ich möchte ein bisschen Perspektive bieten, die ich bei meinem eigenen kleinen Tanz mit
wkhtmltopdf
- entdeckt habexvfb
.Dies ist wichtig, da der gleiche Grund, aus dem der berüchtigte
cannot connect to X server
Fehler ausgelöst wird, auch dazu führt, dass er mit schwerwiegenden Einschränkungen ausgeführt wird, selbst wenn Sie ihm einen X-Server zur Verfügung stellen. Zu diesen Einschränkungen gehört, dass nicht mehrere Eingabequellen, Kopf- und Fußzeilen usw. verwendet werden können ( siehe Abschnitt Reduzierte Funktionalität des Handbuchs ).wkhtmltox
Für sich genommen ist kein X11 erforderlich, es werden jedoch QT-Bibliotheken verwendet, die dies tun. In allen neuen Versionen von wkthmltox haben Entwickler einen Patch für QT erstellt, mit dem es mit einem X11 ausgeführt werden kann.Derzeit werden einige Versionen gegen gepatchte QT erstellt, andere nicht. Sie können Ihre Version überprüfen, indem Sie ausführen
wkhtmltopds --version
. Am Ende sollte eine Zeile stehen, in der stehtCompiled against wkhtmltopdf patched qt.
Wenn Sie also eine Version installieren und verwenden, die die gepatchten Bibliotheken verwendet, sollte sie auf einem Linux-Server ohne
xvfb
Server funktionieren , wie ich bestätigen kann.quelle
Lösung für Centos7 :
Wir stoßen in Docker-Containern auf dieses Problem und die obige Installation hat wkhtmltopdf mit gepatchter QT
quelle
sudo rpm -Uvh https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.2.1/wkhtmltox-0.12.2.1_linux-centos7-amd64.rpm
Achten Sie darauf: Ihre Datei könnte
wkhtmltopdf.sh
oderwkhtmltopdf
überprüfen Sie sie im zweiten SchrittSie müssen es in das Verzeichnis / usr / local / bin kopieren, es ausführbar machen und den Symlink von wkhtmltopdf.sh hinzufügen wie:
1- der Befehl:
2 - Fügen Sie die Binärdatei in das Verzeichnis / usr / bin ein, damit der Browser keine Berechtigung zum Ausführen in diesem Verzeichnis hat. Sie müssen die Datei wkhtmltopdf.sh in das Verzeichnis / usr / local / bin kopieren, da der Browser über die folgenden Berechtigungen in diesem Verzeichnis verfügt:
3 - Nach make sur hat die Binärdatei die Erlaubnis zur Ausführung wie:
4 - jetzt können Sie testen, es funktioniert wie folgt:
Dadurch wird das PDF im aktuellen Verzeichnis Ihres Terminals heruntergeladen
5 - Optional können Sie jetzt einen Symlink in Ihrem Verzeichnis / usr / local / bin like hinzufügen
quelle
/usr/bin/
/usr/bin/wkhtmltopdf
wkhtmltopdf http://www.google.com test.pdf
Hinweis: Detailinformationen über diesen Linkquelle
Installieren Sie einfach eine Version 0.12.4 oder höher. Dies scheint das Problem zu lösen.
Siehe Wie kann ich das neueste wkhtmltopdf unter Ubuntu 16.04 installieren? .
quelle
Wenn Sie wkhtmltopdf für Rails oder Somethings in Centos konfigurieren, können Sie die folgenden Schritte ausführen:
In Centos Server Bash.
wget link_of_wkhtmltopdf_rpm.rpm
rpm -ivh link_of_wkhtmltopdf_rpm.rpm
which wkhtmltopdf
=> Sie erhalten den Pfad von wkhtmltopdf.
Setup für wicked_pdf oder pdfkit mit Pfad in Schritt 4. Dies ist eine Beispielkonfiguration mit wickedpdf. config / initializers / wicked_pdf.rb
Starten Sie den Server neu.
GETAN.
quelle
Für 64-Bit-Verwendung:
quelle
Sagen Sie dem Qt-Backend einfach, dass es X nicht verwenden soll:
quelle