Mi Blog

Programador Web, fanático del software libre, hardware libre y energía renovable. Quito Ecuador

Instalar Wkhtmltopdf en CENTOS 6

Cuando se necesita convertir paginas html a pdf la mejor alternativa es wkhtmltopdf ya que usa el poder de webkit, he tenido muy buenos resultados, incluso imprime archivos svg embebidos en el html. Pero para poder usarlo es indispensable instalarlo y a veces es necesario tener permisos administrativos para hacerlo. En Ubuntu es tan sencillo como escribir sudo apt-get install wkhtmltopdf pero en CENTOS 6 el proceso es mucho mas complejo y lo describo a continuacion:

Descargar wkhtmtopdf desde google code en instalarlo en /usr/local/bin (descargue la version x86_64 correspondiente a la arquitectura de mi servidor), para otros casos es necesario descargar la versio i386

wget http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.11.0_rc1-static-amd64.tar.bz2
tar -xjvf wkhtmltopdf-0.11.0_rc1-static-amd64.tar.bz2
chmod 0755 wkhtmltopdf-amd64
mv wkhtmltopdf-amd64 /usr/local/bin/wkhtmltopdf
ln -s /usr/local/bin/wkhtmltopdf /usr/bin/

Cuando trate de correr la aplicación me aparecio el error

wkhtmltopdf: error while loading shared libraries: libXrender.so.1: cannot open shared object file: No such file or directory

Lo solucione instalando libxrender con el comando

yum install libXrender

Luego apareció un nuevo error

wkhtmltopdf: error while loading shared libraries: libfontconfig.so.1: cannot open shared object file: No such file or directory

Para solucionarlo hay que instalar fontconfig

yum install fontconfig

El nuevo mensaje de error fue

wkhtmltopdf: error while loading shared libraries: libXext.so.6: cannot open shared object file: No such file or directory

Debido a que es necesario instalar libXext

yum install libXext

Al tratar de usarlo me aparecen errores como

QPixmap: Cannot create a QPixmap when no GUI is being used

Esto se debe a que necesita un servidor gráfico pero no es muy práctico instalarlo en el servidor ya que normalemente to se necesita, para ello hay una alternativa. Instalar xvfb que es un mini servidor grafico

yum install xorg-x11-server-Xvfb

Luego sale el error

xvfb-run: error: xauth command not found

Que se soluciona al instalar

yum install xorg-x11-xauth

Ahora podermos convertir las paginas html a PDF pero hay problemas con las tipografias por eso es necesario instalar las tipografias, pero antes es necesario instalar cabextract

wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
rpm -K rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
rpm -i rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
yum install cabextract

Finalmente instalamos las tipografias y wkhtmltopdf funciona correctamente

rpm -Uvh https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.2-1.noarch.rpm
Categorias: GNU/Linux