Um exemplo de arquivo PDF com as tabelas em formato de texto (e não imagens) dentro dele é este com os dados do Boletim de Balneabilidade da Bahia. Em 2018, a Escola de Dados em parceria com o Correio 24 Horas libertou os dados destes PDFs – o que viabilizou a produção de uma série de matérias analisando os resultados.
Neste tutorial, vamos ver como extrair os dados do Boletim usando duas ferramentas distintas. A primeira delas é o Tabula, um software feito de jornalistas para jornalistas. Ele também é multi-plataforma (Linux, Windows, MacOS) e possui uma interface gráfica bem intuitiva. Após selecionar as áreas do PDF onde estão as tabelas que devem ser extraídas, o programa vai rodar em todas as páginas e gerar tabelas pra você.
O software é baseado em Java e o exige como pré-requisito. O Tabula não precisa ser instalado, basta baixar o arquivo de acordo com seu sistema operacional e executar o arquivo tabula.jar.
O programa roda a partir do seu navegador. Depois de iniciado, o programa deve abrir no seu navegador padrão, mas caso isso não aconteça de forma automática, acesse o endereço: http://127.0.0.1:8080
A primeira coisa a fazer, então, é importar seu PDF. Selecione o arquivo e clique em “Import”.
O segundo passo é selecionar as tabelas no seu documento. Do lado esquerdo, você navega entre as páginas e pode selecionar a área da página onde sua tabela está localizada.
Neste momento, tudo depende de como está diagramado seu arquivo. Repare que no caso do Boletim a tabela não segue um padrão e está posicionada em locais diferentes na primeira e segunda página. Se no seu documento a tabela está posicionada sempre no mesmo lugar, é possível “repetir a seleção” na página seguinte ou em todas as páginas.
Há uma opção de “Auto-detectar Tabelas”, que você pode tentar. Com o nosso exemplo, porém, ela falhou, então realizamos o recorte manualmente. Você pode ainda salvar sua seleção como um template para depois aplicá-la em outros arquivos.
Depois de fazer a seleção, clique no botão verde “Preview & Export Extracted Data”.
Agora já estamos quase lá. Revise a tabulação feita pelo programa e, se algo parecer estranho, experimente alterar os métodos de extração, utilizando o menu à esquerda. Por fim, você pode selecionar também o formato de exportação (CSV, JSON, TSV e outros) ou mesmo copiar os dados diretamente para a área de transferência.
Apesar de ser uma ótima ferramenta, o Tabula tem algumas limitações. Como vimos, ele não faz OCR, portanto, não trabalha com tabelas escaneadas. Você também pode ter dificuldades se sua tabela tiver múltiplas linhas nos mesmos registros ou células mescladas. Se você precisa automatizar processos ou uma performance mais rápida, considere usar o Tabula-java pela linha de comando – na próxima semana, vamos lançar um tutorial sobre isto.
Rows
Outra opção para automatizar processos é usar o Rows, um software que pode ser executado a partir da linha de comando ou como uma biblioteca em Python. Para instalar a versão com suporte a PDF, você precisa instalar o Python 3 no seu computador e digitar em um terminal:
pip install rows[pdf]>=0.4.1
Você pode converter tabelas que não necessitem de OCR, usando o seguinte comando.
rows convert arquivo.pdf arquivo.csv
Ao invés de localizar o arquivo PDF no seu próprio computador, também é possível utilizar uma URL neste parâmetro e converter o arquivo diretamente da web.
rows convert http://www.inema.ba.gov.br/wp-content/uploads/2019/01/Boletim-de-Balneabilidade-para-NOMECOSTA-emitido-em-04-01-2019.pdf boletim.csv
Além da Rows (que foi utilizado no projeto com o Correio 24 horas) e do Tabula, existem também outras opções para transformar um PDF em tabela. O PDFTOTEXT é uma delas. Há um tutorial (em inglês) sobre como usá-lo para para trabalhar com tabelas aqui. Estes softwares que rodam no seu próprio computador são a alternativa mais adequada se você está trabalhando com dados sensíveis.
Aqui vai um resumo com algumas das soluções em código-aberto para libertar dados em PDF. Todos eles são gratuitos e multi-plataforma.
Última versão | Exporta em formato tabular? | Interface | |
Tabula | Jun 2018 | Sim | Gráfica e linha de comando |
Rows | Fev 2019 | Sim | Linha de comando |
PDFtoText | Fev 2018 | Não | Linha de comando |
E você?
Pronto para libertar os dados dos PDFs? Você pode experimentar esta e outras ferramentas e compartilhar sua experiência no nosso fórum da Escola de Dados. Conhece algum outro software que não cobrimos neste tutorial? Então, comente aqui no post.
Show.
O fiz um piloto com planilha FOTOGRAFADA, funcionou bem
Não teve Cristo que fizesse o Tabula funcionar no meu Mac. Ele abre, e logo depois fecha sozinho, não consegue abrir um socket no navegador.
Oi Mauro, você poderia por favor uma descrição detalhada do problema aqui, por favor?
https://forum.jornalismodedados.org/
Fiquei um tempão tentando pelo Tabula e ele funcionou para alguns pdfs, mas não conseguiu ler algumas tabelas corretamente. Recomendo usar o ilovepdf.com, que fez a conversão perfeitamente, mesmo em casos em que o pdf não estava bem formatado.