Converter HTML directamente para PDF – xhtml2pdf

Muitas vezes, quem trabalha em informática, pode ter a necessidade de realizar pequenos scripts que convertam uma página HTML directamente para um PDF para depois poder imprimir automáticamente (num cron) ou enviar por email, etc…

Existe um pequeno programinha, extraordinário, xhtml2pdf, que faz este trabalho fantasticamente.

XHTML2PDF é um conversor para HTML/XHTML e CSS e um pacote para Python.

Este programa, além de ser muito bom, aceita TAGS directamente inseridas no HTML para poder formatar o PDF da maneira que queiramos. Aceita TAGS conhecidas de CSS para realizar essa tarefa. Leiam adocumentação para saberem mais.

A instalação é muito simples,mas tem algumas dependências que precisamos de resolver.

Pacotes necessários:

ReportlabToolkit 2.1+ (obrigatório)

html5lib 0.11.1+ (obrigatório)

pyPdf 1.11+ (opcional)

PIL 1.1.6+ (opcional)

Esta instalação foi efectuada num Centos 5

Instalar o PIL

Instamos o PIL (python-imaging) com o YUM, pois este encontra-se nos repositorios do Centos

yum install python-imaging

Instalar o ReportLab

Para instalar o ReportLab, efectuamos o download e compilamos nós mesmos.

wget http://www.reportlab.org/ftp/ReportLab_2_3.tar.gz

tar -zxvf ReportLab_2_3.tar.gz

cd ReportLab_2_3

Para instalar um pacote python é a coisa mais simples:

python setup.py install (o pacote deverá ter um ficheiro chamado setup.py)

No meu caso, ele queixou-se que não tinha o módulo setuptools instalado, e foi preciso instalar antes de continuar com a instalação. Nada mais simples:

yum install python-setuptools

Assim que instalei, já pude continuar

python setup.py install

Instalar o Html5Lib

Para Instalar o html5lib, temos que efectuar o download e compilar nós mesmos, pois não se encontra nos repositorios.

wget  http://html5lib.googlecode.com/files/html5lib-0.11.1.zip

unzip html5lib-0.11.1.zip

cd html5lib-0.11.1

python setup.py install

Instalar o pyPdf

wget  http://pybrary.net/pyPdf/pyPdf-1.12.tar.gz

tar -zxvf pyPdf-1.12.tar.gz

cd pyPdf-1.12

python setup.py install

e neste momento já temos todas as dependências resolvidas. Vamos instalar o xhtml2pdf.

Agora, temos duas formas:

ou não efectuamos o download do pacote e usamos a aplicação easy_install, que se vai encarregar de efectuar o download

easy_install pisa

ou efectuamos o download e instalamos normalmente:

Efectuar o download do PISA (nome do pacote) daqui:  http://pypi.python.org/pypi/pisa/

tar -zxvf pisa-3.0.32.tar.gz

cd pisa-3.0.32

python setup.py install

Desta forma, já temos o xhtml2pdf instalado.

Podem começar a converter as vossas páginas html em PDF’s facilmente com esta aplicação.