-
Notifications
You must be signed in to change notification settings - Fork 0
/
pdf2xlsx.py
62 lines (47 loc) · 2.18 KB
/
pdf2xlsx.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# -*- coding: utf-8 -*-
"""
Created on Jul 2019
@author: gacrestani
Gera vários arquivos .xlsx a partir de um laudo .pdf
"""
import tabula
import os
import datetime
print("Este programa cria arquivos .xlsx das tabelas de um arquivo .pdf!")
print("Início:", datetime.datetime.now())
titulo_relatorio = input("Insira o titulo do laudo: ")
diretorio = input(r"Insira o diretório onde está o laudo. Uma nova pasta será criada. Exemplo 'C:\Users\usuariorema\Documents\laudo1': ")
pag_inicial = int(input("Pagina Inicial a ser analisada: "))
pag_final = int(input("Pagina Final a ser analisada: "))
lista_de_paginas = list(range(pag_inicial, pag_final+1))
while True:
retirar = input("Página para retirar da análise: ")
try:
retirar_int = int(retirar)
print("Retirar a página %s" %(retirar))
lista_de_paginas.remove(retirar_int)
print(lista_de_paginas)
except ValueError:
print("Mais nenhuma página para se retirar da análise.")
break
print ('As seguintes páginas serão analisadas: \n')
print(lista_de_paginas, '\n')
print("Criando o diretório...")
novo_diretorio = diretorio + '\\' + titulo_relatorio
print("Diretorio: %s \n" %(novo_diretorio))
os.makedirs(novo_diretorio, exist_ok = True)
print("Analisando o PDF...")
dicionario_dataframes = {}
for pagina in lista_de_paginas:
dicionario_dataframes[pagina] = tabula.read_pdf(diretorio + "\\" + titulo_relatorio + ".pdf", pages=pagina, encoding='cp1252', multiple_tables = True)
print("Página %s analisada." % (pagina))
print("\nCriando as planilhas...")
for page, dataframe in dicionario_dataframes.items():
if type(dataframe) is list:
for i in range(len(dataframe)):
export_excel = dataframe[i].to_excel (r'%s\%s\%s_%s_%s.xlsx' %(diretorio,titulo_relatorio,titulo_relatorio,page,i), index = None, header = True)
print("Planilha %s_%s.xlsx criada." % (titulo_relatorio,page))
else:
export_excel = dataframe.to_excel (r'%s\%s\%s_%s.xlsx' %(diretorio,titulo_relatorio,titulo_relatorio,page), index = None, header = True)
print("Planilha %s_%s.xlsx criada." % (titulo_relatorio,page))
print("\nFinal: ", datetime.datetime.now())