Python - Ler pdf e transformar em tabela

24/04/2023

0

Olá pessoAll, estou tentando LER um arquivo pdf e transformá-lo em uma tabela convencional com colunas e linhas usando Python . Mas meu problema está na disposição em que os dados se encontram no arquivo.

Data Produto Nr Nota Fiscal Nr Pedido Tipo Partic. Valor Total Desconto Base de Cálculo % Comissão

Cliente: 1378 Galbano ****************************** LTDA
191683 111 22 /02 /2022 0 18 A Ç UC A R TRIT URA DO 30X1 KG 262935FD30 95901 15 .300 ,00 0 ,00 15 .300 ,00 0 ,01 153 ,00
Total por Cliente: 15.300,00 15.300,00 153,00

Cliente: 1381 COMERCIAL ******************** LTDA II
191685 111 22 /02 /2022 0 18 A Ç UC A R TRIT URA DO 30X1 KG 262937FD30 95902 20 .400 ,00 0 ,00 20 .400 ,00 0 ,01 204 ,00
191685 111 22 /02 /2022 0 19 A Ç UC A R C RISTA L 30X1 KG 262937FD30 95902 2 .040 ,00 0 ,00 2 .040 ,00 0 ,01 20 ,40
191685 111 22 /02 /2022 0 22 A Ç UC A R DEMERA RA 30X1 KG 262937FD30 95902 5 .600 ,00 0 ,00 5 .600 ,00 0 ,01 56 ,00
Total por Cliente: 28.040,00 28.040,00 280,40

O formato ideal desta tabela seria algo assim:

Cliente Data Produto Nr Nota Fiscal Valor Total Desconto Base de Cálculo % Comissão

Galbano ** LTDA 22/02/2022 18 AÇUCAR TRITURA DO 30X1 KG 262935FD30 15.300,00 0,00 15.300 0,01 153,00
COM. ****LTDA II 22/02/2022 18 AÇUCAR TRITURA DO 30X1 KG 262937FD30 2.040,00 0,00 2.040,00 0,01 20,40
COM. ****LTDA II 22/02/2022 19 AÇUCAR CRISTAL 30X1 KG 262937FD30 2.040,00 0,00 2.040,00 0,01 20,40
COM. ****LTDA II 22/02/2022 22 AÇUCAR DEMERARA 30X1 KG 262937FD30 2.040,00 0,00 5.600,00 0,01 20,40

Alguém consegue me dar uma força ?
Tipo, ... qual biblioteca usar ou qualquer dica mesmo.
Michell Antonionny

Michell Antonionny

Responder

Posts

07/12/2023

Leticia Lima

Olá tudo bem Michell ?

Não sei se entendi corretamente mas voce pode usar a biblioteca pandas e tabula juntos para fazer esse tratamento ai.
vou te mostrar um exemplo que voce pode mexer conforme necessario.

Instalar
pip install tabula-py pandas


Cria um arquivo .py um script para ler o PDF e processar ok ? Ai o PDF seria interessante aqueles criados no word e não em forma de imagem. Isso por causa da formatação e leitura do documento.

 
import tabula
import pandas as pd

# Caminho para o seu arquivo PDF
caminho_pdf = 'caminho/do/seu/arquivo.pdf'

# Use a função read_pdf do tabula para extrair tabelas do PDF
tabelas_pdf = tabula.read_pdf(caminho_pdf, pages='all', multiple_tables=True)

# Combine as tabelas em um único DataFrame do pandas
df = pd.concat(tabelas_pdf)

# Exiba o DataFrame
print(df)



# Renomeie as colunas
df.columns = ["Cliente", "Data", "Produto", "Nr Nota Fiscal", "Valor Total", "Desconto", "Base de Cálculo", "% Comissão"]

# Exiba o DataFrame atualizado


depois 

# Ajuste de formato da coluna Data (opcional)
df['Data'] = pd.to_datetime(df['Data'], format='%d/%m/%Y', errors='coerce')

# Filtrar as colunas desejadas (opcional)
colunas_desejadas = ["Cliente", "Data", "Produto", "Nr Nota Fiscal", "Valor Total", "Desconto", "Base de Cálculo", "% Comissão"]
df = df[colunas_desejadas]

# Salvar o DataFrame em um novo arquivo CSV (opcional)
df.to_csv('saida_formatada.csv', index=False)

print(df)

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar