Tempos atrás escrevi um artigo sobre como gerar PDF dentro do Rails usando a gem wicked_pdf e o wkhtmltopdf. Como escrevi no post anterior, o wkhtmltopdf usa Webkit, a engine de renderização do Safari / Chrome para gerar a visualização do documento. Isso o torna superior se comparado com bibliotecas do PHP como o FPDF, pois, geralmente, essa bibliotecas possuem dificuldades para reproduzir efeitos de CSS.
Em um novo projeto, estou usando novamente o wkhtmltopdf, mas agora dentro do PHP. No post anterior, indiquei que você pode usar o binário disponível no site, entretanto no servidor atual, tive alguns problemas com isso. Então, se possível, compile o wkhtmltopdf direto da fonte.
Compilação passo-a-passo
Instale em seu servidor alguns pacotes que irá precisar:
... e obtenha o código fonte recente do wkhtmltopdf:
git clone git://gitorious.org/+wkhtml2pdf/qt/wkhtmltopdf-qt.git wkhtmltopdf-qt
Veja, para usar o wkhtmltopdf você precisará do QT. Nesse caso também vamos compilá-lo manualmente:
git checkout staging
QTDIR=. ./bin/syncqt
./configure -nomake tools,examples,demos,docs,translations -opensource -prefix "../wkqt"
make -j3 && make install
cd ..
Com o QT gerado, você finalmente poderá compilar o wkhtmltopdf:
../wkqt/bin/qmake
make && make install
Não inventei a receita acima, mas ela funcionou perfeitamente no Debian. Com a compilação a pasta /usr/bin ganhou 2 novos executáveis: wkhtmltopdf e wkhtmltoimage. Com isso você já pode usar o utilitário pelo shell. Se quiser testá-lo, experimente:
PHP
Dentro do próprio site do wkhtmltopdf há uma classe em PHP para utilizar o aplicativo dentro do seu site, entretanto, optei por uma classe disponível no Github. Um simples exemplo, tirado do próprio repositório:
O que o exemplo não mostra é como definir uma mensagem de rodapé. Só depois de algum tempo, percebi que o wkhtmltopdf busca um arquivo externo. No meu aplicativo, defino o rodapé dinamicamente:


