org - wkhtmltopdf: no se puede conectar al servidor X
wkhtmltopdf for windows 10 (18)
- Descargar archivo desde https://wkhtmltopdf.org/downloads.html
- Extraiga y mueva el archivo ejecutable (/ wkhtmltox / bin / wkhtmltopdf) a
/usr/bin/
- Cambie el nombre a wkhtmltopdf si el nombre actual no es wkhtmltopdf. Entonces ahora tienes un ejecutable en
/usr/bin/wkhtmltopdf
- Establecer permisos: sudo chmod a + x / usr / bin / wkhtmltopdf
- Instale los paquetes de soporte necesarios. sudo apt-get install openssl build-essential xorg libssl-dev
- Ahora, consulte con
wkhtmltopdf http://www.google.com test.pdf
sugerencia: información detallada de este enlace
He estado usando wkthmltopdf para convertir html a documentos PDF sobre la marcha en mi servidor web linux. El programa originalmente necesitaba X11 o un servidor X similar para ejecutarse correctamente, pero a través de muchas solicitudes de los desarrolladores para que esto se ejecute en servidores sin GUI, estoy bastante seguro de que ejecuta un servidor X virtual en la versión estática . He estado usando la versión estática (independiente) del programa y funciona muy bien. Pondría el archivo ejecutable en una carpeta y ejecutaré:
./wkhtmltopdf file1.html file2.pdf
Sin embargo, me gustaría instalar este programa en todo el sistema. Utilicé el apt-get install wkhtmltopdf
(recién instalado ayer) y como estoy ejecutando en un sistema de 64 bits, también necesitaba apt-get install ia32-libs
. Después de la instalación, puedo encontrar la versión de esta manera:
wkhtmltopdf --version
salida:
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.
Ahora, cuando intento ejecutar el programa instalado a través de aptitude, aparece el siguiente error:
wkhtmltopdf: cannot connect to X server
¿Alguien sabe como puedo arreglar esto? Supongo que a esta versión le falta un servidor X virtual o algo así.
Acaba de hacerlo:
1- Para descargar dependencias wkhtmltopdf
# apt-get install wkhtmltopdf
2- Descargar de la fuente
# wget http://downloads.sourceforge.net/project/wkhtmltopdf/xxx.deb
# dpkg -i xxx.deb
3- Prueba
# wkhtmltopdf http://google.com google.pdf
¡Funciona!
Acabo de descubrir que simplemente puedo mover el archivo ejecutable estático al directorio /usr/bin/
y ejecutarlo desde cualquier lugar.
Actualice a la última versión de wkhtmltopdf de SourceForge (0.12 al momento de escribir esto). No necesita un servidor X para ejecutarse.
Ejemplo para Ubuntu 14.04:
$ cd /tmp/
$ wget -q http://downloads.sourceforge.net/project/wkhtmltopdf/0.12.2.1/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
$ dpkg -x wkhtmltox-0.12.2.1_linux-trusty-amd64.deb foo
$ echo ''<p>hi</p>'' | ./foo/usr/local/bin/wkhtmltopdf - /tmp/hi.pdf
Loading pages (1/6)
Counting pages (2/6)
Resolving links (4/6)
Loading headers and footers (5/6)
Printing pages (6/6)
Done
$ head -n3 /tmp/hi.pdf
%PDF-1.4
1 0 obj
<<
Ampliando la respuesta de Timoteo ...
Si eres un desarrollador web que busca usar wkhtmltopdf como parte de tu aplicación web, simplemente puedes instalarlo en tu carpeta /usr/bin/
manera:
cd /usr/bin/
curl -C - -O http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.11.0_rc1-static-i386.tar.bz2
tar -xvjf wkhtmltopdf-0.11.0_rc1-static-i386.tar.bz2
mv wkhtmltopdf-i386 wkhtmltopdf
Ahora puede ejecutarlo en cualquier lugar usando wkhtmltopdf
.
Yo personalmente uso la biblioteca de Snappy en PHP. Aquí hay un ejemplo de lo fácil que es crear un PDF:
<?php
// Create new PDF
$pdf = new /Knp/Snappy/Pdf(''wkhtmltopdf'');
// Set output header
header(''Content-Type: application/pdf'');
// Generate PDF from HTML
echo $pdf->getOutputFromHtml(''<h1>Title</h1><p>Your content goes here.</p>'');
El problema es probablemente en la versión anterior de wkhtmltopdf - la versión 0.9 del repositorio de distribución requiere ejecutar el servidor X, pero la versión actual - 0.12.2.1 no lo requiere - puede ejecutarse sin cabeza.
Descargue el paquete para su distribución desde http://wkhtmltopdf.org/downloads.html e instálelo - para Ubuntu:
sudo apt-get install xfonts-75dpi
sudo dpkg -i wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
Encontré un método para resolver este problema sin el falso servidor X. En la versión más reciente de wkhtmltopdf no se necesita el servidor X para el trabajo, pero tampoco en los repositorios oficiales de Linux.
Solución para Ubuntu 14.04.4 LTS (confiable) i386
$ sudo apt-get install xfonts-75dpi
$ wget http://download.gna.org/wkhtmltopdf/0.12/0.12.2/wkhtmltox-0.12.2_linux-trusty-i386.deb
$ sudo dpkg -i wkhtmltox-0.12.2_linux-trusty-i386.deb
$ wkhtmltopdf http://www.google.com test.pdf
Solución para Ubuntu 14.04.4 LTS (confiable) amd64
$ sudo apt-get install xfonts-75dpi
$ wget http://download.gna.org/wkhtmltopdf/0.12/0.12.2/wkhtmltox-0.12.2_linux-trusty-amd64.deb
$ sudo dpkg -i wkhtmltox-0.12.2_linux-trusty-amd64.deb
$ wkhtmltopdf http://www.google.com test.pdf
El usuario felixhummel obtuvo una muy buena solución, pero el repositorio con utilite ha cambiado.
Esto resolvió el problema para mí:
sudo apt-get install xvfb
xvfb-run --server-args="-screen 0, 1024x768x24" wkhtmltopdf file1.html file2.pdf
Foe de 64 bits de uso:
wget http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.9.9-static-amd64.tar.bz2
tar xvjf wkhtmltopdf-0.9.9-static-amd64.tar.bz2
sudo mv wkhtmltopdf-amd64 / usr / bin / wkhtmltopdf
sudo chmod + x / usr / bin / wkhtmltopdf
Intenté hacer sudo apt-get install wkhtmltopdf
pero sin éxito. En cambio, te recomiendo que intentes:
Descargue el último ejecutable (.11 rc1):
wget https://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.11.0_rc1-static-i386.tar.bz2
descomprimirlo:
tar -vxf wkhtmltopdf-0.11.0_rc1-static-i386.tar.bz2
cambiarle el nombre:
mv wkhtmltopdf-i386 wkhtmltopdf
chmod a ejecutable:
chmod a+x wkhtmltopdf
colocarlo en / usr / bin:
sudo mv wkhtmltopdf /usr/bin
Se recomienda usar al menos 0.12.2.1.
A partir de wkhtmltopdf> = 0.12.2 ya no requiere servidor X ni emulación. Puede descargar una nueva versión desde http://wkhtmltopdf.org/downloads.html
Seguí las instrucciones aquí e hice wkhtmltopdf trabajo para mí, pero me gustaría ofrecer un poco de perspectiva que descubrí mientras hacía mi propio baile con wkhtmltopdf
- xvfb
.
Esto es importante porque la misma razón por la que lanza el infame cannot connect to X server
error del cannot connect to X server
también hace que se ejecute con limitaciones de servidor, incluso si le proporciona un servidor X. Estas limitaciones incluyen no poder tomar varias fuentes de entrada, establecer encabezado y pie de página, etc. (consulte la sección de Funcionalidad reducida del manual ).
wkhtmltox
por sí mismo no requiere un X11, sin embargo, está haciendo uso de las bibliotecas de QT que sí lo hacen. En las últimas versiones de los desarrolladores de wkthmltox se creó un parche para QT que permite ejecutarlo con un X11.
Actualmente, algunas versiones están compiladas contra QT parcheado y otras no. Puede verificar su versión ejecutando wkhtmltopds --version
. Debería haber una línea al final diciendo Compiled against wkhtmltopdf patched qt.
Entonces, para concluir, si instalas y usas una versión que usa las bibliotecas parcheadas, debería funcionar en un servidor Linux sin el servidor xvfb
, como puedo confirmar.
Simplemente instale una versión 0.12.4 o superior. Esto parece resolver el problema.
Ver ¿Cómo puedo instalar el último wkhtmltopdf en Ubuntu 16.04? .
o prueba esto (de http://drupal.org/node/870058 )
Descargue wkhtmltopdf. O mejor, instálalo con un administrador de paquetes:
sudo apt-get install wkhtmltopdf
Extraelo y muévelo a
/usr/local/bin/
- Cambie el nombre a
wkhtmltopdf
para que ahora tenga un ejecutable en/usr/local/bin/wkhtmltopdf
- Establecer permisos:
sudo chmod a+x /usr/local/bin/wkhtmltopdf
Instale los paquetes de soporte necesarios.
sudo apt-get install openssl build-essential xorg libssl-dev
Verifica si funciona: ejecuta
/usr/local/bin/wkhtmltopdf http://www.google.com test.pdf
Si funciona, entonces has terminado. Si obtiene el error "No se puede conectar al servidor X", continúe con el número 7.
Necesitamos ejecutarlo sin cabeza en un servidor ''virtual'' x. Haremos esto con un paquete llamado xvfb.
sudo apt-get install xvfb
Necesitamos escribir un pequeño script de shell para envolver wkhtmltopdf en xvfb. Haga un archivo llamado
wkhtmltopdf.sh
y agregue lo siguiente:xvfb-run -a -s "-screen 0 640x480x16" wkhtmltopdf "$@"
Mueva este script de shell a
/usr/local/bin
, y configure los permisos:sudo chmod a+x /usr/local/bin/wkhtmltopdf.sh
Comprueba si funciona una vez más: ejecuta
/usr/local/bin/wkhtmltopdf.sh http://www.google.com test.pdf
para 14.04.1-Ubuntu https://wkhtmltopdf.org/downloads.html
wget https://downloads.wkhtmltopdf.org/0.12/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz -O mktemp.tar.xz
tar xf mktemp.tar.xz
sudo cp wkhtmltox/bin/wkhtmltopdf /usr/bin/wkhtmltopdf
sudo chmod +x /usr/bin/wkhtmltopdf
rm mktemp.tar.xz
rm wkhtmltox -rf
apt-get update
apt-get install -y libxrender1 libxtst6 libxi6
wkhtmltopdf http://www.google.com test.pdf
wkhtmltopdf
> 0.11
no tiene este problema de X-server
Entonces instalando 0.12.2.1
en un servidor Linux.
Al principio instala el servidor xvfb:
sudo apt-get install xvfb
Obtenga la versión necesaria de wkhtmltopdf desde http://wkhtmltopdf.org/downloads.html
Instalar wkhtmltopdf:
sudo dpkg -i wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
o instalar con
wget
URL=''http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb''; FILE=`mktemp`; wget "$URL" -qO $FILE && sudo dpkg -i $FILE; rm $FILE
Instalar dependencia (si es necesario):
sudo apt-get -f install
Crear enlace simbólico en
/usr/local/bin/
:echo ''exec xvfb-run -a -s "-screen 0 640x480x16" wkhtmltopdf "$@"'' | sudo tee /usr/local/bin/wkhtmltopdf.sh >/dev/null sudo chmod a+x /usr/local/bin/wkhtmltopdf.sh
Ahora prueba debajo y debería funcionar,
/usr/local/bin/wkhtmltopdf http://www.google.com test.pdf
solución para Centos7 :
yum -y install xorg-x11-fonts-75dpi /
xorg-x11-fonts-Type1 /
&& rpm -Uvh http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-centos7-amd64.rpm
Nos encontramos con este problema dentro de los contenedores acoplables y la instalación anterior tiene wkhtmltopdf con parche QT
sudo -i
apt-get install wkhtmltopdf xvfb libicu48
mv /usr/bin/wkhtmltopdf /usr/bin/wkhtmltopdf-origin
touch /usr/bin/wkhtmltopdf && chmod +x /usr/bin/wkhtmltopdf && cat > /usr/bin/wkhtmltopdf << END
#!/bin/bash
/usr/bin/xvfb-run -a -s "-screen 0 1024x768x24" /usr/bin/wkhtmltopdf-origin "/$@"
END