Python - Ler pdf e transformar em tabela
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.
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
Curtidas 0
Respostas
Leticia Lima
24/04/2023
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
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.
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)
GOSTEI 0