Convertendo Páginas HTML para PDF com a ferramenta WKHTMLTOPDF

Há certas situações, que nos deparamos na internet, onde um documento disponibilizado em uma página precisa ser salvo no computador, daquela forma que é apresentado. Porém, por se tratar de um site antigo ou por descuido de quem o projetou, não há a possibilidade de transportar o documento em um formato portátil como o PDF, assim como acontece em certificados que são oferecidos por certos cursos, em sites antigos.

Hoje, você conhecerá uma ferramenta command line (isto é: que se executa via linha de comando) para Linux, Windows e OSX, capaz de converter páginas em HTML para PDF.

(Foto: Graphiqastock / Freepik)

HTML e PDF — o que são?

HTML, como extensão de arquivo, é utilizada para indicar que o conteúdo de um documento foi escrito em HTML (que é uma linguagem de marcação), cujo mesmo pode ser visualizado através de um navegador como o Firefox, da Mozilla ou o Chrome, da Google. Você pode ler mais sobre HTML nesse artigo de Introdução ao HTML.

Já a extensão PDF é utilizada para indicar um Portable Document Format — formato de documento portátil, que você pode visualizá-lo em diversos outros programas tanto em smartphone quanto computador.

Instalação do wkhtmltopdf

Dependendo da sua distribuição Linux e do gerenciador de pacotes que ela utiliza, o comando pode variar. Mas no Debian, Ubuntu, Mint e semelhantes, pesquise pelo pacote para checar se está disponível:

$ apt-cache search wkhtml

Provavelmente encontrará um pacote chamado wkhtmltopdf, então instale-o da seguinte forma:

$ sudo apt-get update # importante, antes da instalação
$ sudo apt-get install wkhtmltopdf

No Arch Linux, basta pesquisar pelo pacote utilizando pacman -Ss wkhtml e instalá-lo com pacman -S wkhtmltopdf. Caso queira compilar o fonte, acesse o INSTALL.md do repositório do projeto no GitHub e siga os passos descritos no processo de instalação.

Se você está no Windows ou Mac OSX e está seguindo esse tutorial, baseie-se no INSTALL.md mencionado acima.

Convertendo os Documentos

A sintaxe do comando segue esse formato:

wkhtmltopdf [opções globais] [alvo] <saída>

Exemplo Simples

Um exemplo simples é a conversão da página inicial do google em um documento PDF. Veja:

$ wkhtmltopdf http://www.google.com.br google.pdf

O resultado será uma um documento como este:

Página inicial do Google em formato PDF

Talvez tenha saído no console algumas mensagens de erro devido ao protocolo HTTPS. Ignore-as. Mas note que o título da página se tornou o título do documento e os links dela são clicáveis. Outra observação é que a aparência desse documento está em modo retrato. Essas opções podem ser configuradas, como veremos a seguir.

Exemplo com Opções

Aqui, algumas opções úteis que devem anteceder o [alvo] e [saída].
-O Landscape # altera a orientação (padrão é Portrait, retrato)
--title "Tutorial do Autociência" # altera o título do documento
--disable-external-links # desativa links externos no documento

Teste esse comando:

wkhtmltopdf -O Landscape --title "Tutorial do Autociência" --disable-external-links http://www.google.com.br google.pdf

Terá um resultado aproximadamente assim:
Note, no canto esquerdo da thumbnail, que
o formato da página mudou

Esse documento está no formato paisagem, sem links clicáveis e ainda possui o título "Tutorial do Autociência".

Você também pode baixar uma página e, em vez de especificar uma URL, especificar o endereço do documento em seu computador com a ferramenta. Há ainda opções disponíveis para alterar a escala para preto e branco (grayscale), remover imagens e uma série de outras configurações.

O que você aprendeu

Você aprendeu a instalar e usar o wkhtmltopdf para converter arquivos HTML em PDF sem muito esforço e ainda usando algumas configurações básicas. Para se aprofundar, leia a documentação disponível em www.wkhtmltopdf.org.

Referências
WKHTMLTOPDF. Wkhtmltopdf. Disponível em <https://wkhtmltopdf.org/docs.html>. Acesso em 29 jan. 2018.

GITHUB. wkhtmltopdf/wkhtmltopdf: Convert HTML to PDF using Webkit (QtWebKit). Disponível em <https://github.com/wkhtmltopdf/wkhtmltopdf>. Acesso em 29 jan. 2018.

Para citar esse artigo:

Comentários