Como converter tabelas de PDF para Excel ou CSV com Tabula

Passe e converta pdf em csv e excel

Olhando para os dados históricos oferecidos por um observatório meteorológico na minha cidade, vejo que eles apenas os oferecem graficamente e para download como PDF. Não entendo por que não permitem que você baixe em csv, o que seria muito mais útil para todos.

Estou procurando por um solução para passar essas tabelas de pdf para csv ou se alguém quiser formatar Excel ou Libre Office. Eu gosto do csv porque com um csv você faz tudo o que pode manipular com o python e suas bibliotecas ou pode importá-lo facilmente para qualquer planilha.

Como a ideia é conseguir um processo automatizado, o que eu quero é um script para trabalhar com Python e é aí que entra o Tabula.

Converter pdf em csv com o Tabula

As etapas e a operação são muito simples. O primeiro será instalar a biblioteca Tabula em nosso ambiente de desenvolvimento. Tabula nos permite extrair dados de tabelas em PDF para dataframes Pandas, a biblioteca Python otimizada para trabalhar com csv e arrays.

Também permite extrair e converter entre PDF, JSON, CSV e TSV. Uma joia. Você pode encontrar muito mais informações em seu repositório github

Assine nossa lista de discussão

Aproveito todo o trabalho dos dias anteriores e instalo no Anaconda. No link você pode ver como instalar o Anaconda.

Nós instalamos Tabula

#primero activamos nuestro entorno de desarrollo en nuestro caso sería conda activate comparador
pip install tabula-py

Ao executá-lo, me deu um erro

a solução indicada em sua documentação foi desinstalar a versão antiga do Tabula e instalar a nova.

pip uninstall tabula
pip install tabula-py

Criamos o executável .py

ler tabelas de pdf para csv

Crio o executável .py que chamo de pdftocsv.py coloco na minha pasta Downloads / eltiempo e é um arquivo com o seguinte código

import tabula
# Extaer los datos del pdf al DataFrame
df = tabula.read_pdf("inforatge.pdf")
# lo convierte en un csv llamdo out.csv codificado con utf-8
df.to_csv('out.csv', sep='\t', encoding='utf-8')

O pdf a ler chama-se inforatge.pdf e digo-lhe que o output chama-se out.csv e vai ficar na pasta em que estamos a trabalhar.

Vamos para o diretório onde temos o executável e o pdf que queremos converter. É importante porque se nos dirá que não pode encontrar o arquivo.

cd Descargas/eltiempo

Neste diretório temos o PDF, o arquivo .py que criamos e lá ele retornará o csv que queremos.

Nós executamos o código

python pdftocsv.py

Observe que usei o python, ou seja, digo para executá-lo com o python 2 e não com o python3 que falha. E é isso se não retornar nenhum erro, já a temos.

executar Tabula em nosso ambiente de desenvolvimento Anaconda

Adicionamos mais 3 linhas ao arquivo para controle de tempo de execução. no final, deixamos nosso arquivo pdftocsv.py como

import tabula
import time

start_time = time.time()

df = tabula.read_pdf("inforatge.pdf")
df.to_csv('out.csv', sep='\t', encoding='utf-8')

print("--- %s seconds ---" % (time.time() - start_time))

Mais opções de Tabula

Mais exemplos de coisas que podemos fazer. Existem muitas opções, é melhor acessar o repositório oficial do Github que deixei

# Leer PDF remotos y convertirlos en DataFrame
df2 = tabula.read_pdf("https://github.com/tabulapdf/tabula-java/raw/master/src/test/resources/technology/tabula/arabic.pdf")

# Convertir un PDF en CSV
tabula.convert_into("test.pdf", "output.csv", output_format="csv")

E sem dúvida uma das coisas mais úteis para converter todos os arquivos PDF, JSON, etc. em um diretório.

tabula.convert_into_by_batch("input_directory", output_format='csv')

Com isso, podemos automatizar tarefas que, de outra forma, seriam longas e tediosas. No final das contas, esse é um dos motivos para usar esta biblioteca.

Converter pdf em excel online

Se o que queremos é simplesmente converter um arquivo, extrair os dados da tabela de PDF para Excel, Librecalc ou similar, não é necessário complicar tanto. Existem ferramentas disponíveis para fazer isso, algumas para instalar e outras para fazer o trabalho online.

Eu tentei essas duas ferramentas online e elas funcionam muito bem.

Lembre-se de que este não é um trabalho automatizado, por isso o estudo dessas ferramentas não foi exaustivo. Só comento sobre eles para quem possa se interessar.

O método clássico

E sempre temos o método clássico, o mais descuidado e caro, mas no final é uma opção se houver pouco trabalho.

Copie as células da tabela do pdf e cole-as em nossa planilha.

Deixe um comentário