@@ -93,14 +93,15 @@ def Main():
93
93
setTerminalFile ("closed" )
94
94
95
95
try :
96
- # Remove extensão do arquivo, pegando apenas o nome e atribui para a temporária
96
+ # Remove extensão do arquivo, pegando apenas o nome e
97
+ # atribui para a temporária
97
98
fileName = pdfFile [:- 4 ]
98
99
99
100
# Pega o número de páginas que o PDF contém
100
101
pdf = PdfFileReader (open (pdfFile , "rb" ))
101
102
pdfNumberOfPages = pdf .getNumPages ()
102
103
103
- # Abre o leiaute para o terminal
104
+ # Cria o título para leitura do arquivo no terminal
104
105
setTerminalFile ("open" )
105
106
print (
106
107
pdfFile + strGiantLine + "\n " +
@@ -131,16 +132,16 @@ def Main():
131
132
132
133
# >> LEITURA <<
133
134
# Desc:
134
- # Fazendo leitura do arquivo completo e passando como lista de DataFrames
135
- # para a variável
135
+ # Fazendo leitura do arquivo completo e passando como
136
+ # lista de DataFrames para a variável
136
137
tableListOfDataFrames = tabula .read_pdf (
137
138
pdfFile ,
138
139
guess = True ,
140
+ lattice = boolLattice ,
139
141
multiple_tables = True ,
140
142
pages = "all" ,
141
- silent = True ,
142
- lattice = boolLattice ,
143
- pandas_options = {"dtype" : "str" }
143
+ pandas_options = {"dtype" : "str" },
144
+ silent = True
144
145
)
145
146
146
147
# >> CONVERSÃO <<
@@ -155,9 +156,8 @@ def Main():
155
156
conversionStart (conversionMethod , tableDataFrame )
156
157
formatTextFile (conversionMethod )
157
158
158
- # Atribuindo mais um ao índice para indicar que os arquivos foram convertidos
159
+ # Atribuindo mais um ao índice para indicar que o arquivo PDF foi convertido
159
160
indexFile = indexFile + 1
160
-
161
161
except Exception as err :
162
162
showError ("Ocorreu um erro ao tentar realizar a leitura do arquivo '" + pdfFile + "'." , err )
163
163
break
@@ -175,7 +175,7 @@ def Main():
175
175
file = txtOutputFile
176
176
)
177
177
setTerminalFile ("closed" )
178
- # Se até o término da operação nenhum PDF foi convertido ainda
178
+ # Se ainda até o término da operação nenhum PDF foi convertido
179
179
# exibe um erro
180
180
else :
181
181
showError ("Não há arquivos de PDF para serem convertidos." , "" )
@@ -189,7 +189,8 @@ def Main():
189
189
190
190
# >> DEFINE O LOCAL DA RAÍZ DO PROJETO <<
191
191
# Desc:
192
- # Define o local da raíz do projeto, onde os outros caminhos irão se basear
192
+ # Define o local da raíz do projeto, onde os outros caminhos irão
193
+ # se basear
193
194
def setCurrentPath ():
194
195
try :
195
196
# ---------------------------------------------------------------------- #
@@ -213,14 +214,16 @@ def setCurrentPath():
213
214
# (pdfconverter\bin\Debug\netcoreapp3.1)
214
215
# \___[a diminuição de caracteres faz voltar até a pasta 'pdfconverter']
215
216
217
+ # Passa para a variável global o caminho do arquivo de texto do terminal
216
218
txtOutputFilePath = currentPath + "\\ resultados\\ output.txt"
217
219
except Exception as err :
218
220
showError (
219
221
"Não foi possível achar o diretório atual. Provável problema na hora de encurtar o "
220
- "caminho, verifique se o caminho passado na variável 'currentPath' dentro do método "
221
- "'setCurrentPath' está correto."
222
+ "caminho, verifique se o caminho passado na variável 'currentPath' dentro do "
223
+ "método 'setCurrentPath' está correto." ,
222
224
223
- , err )
225
+ err
226
+ )
224
227
225
228
# >> DEFINE A ESTRUTURA DE PASTAS DO PROJETO <<
226
229
# Desc:
@@ -276,10 +279,9 @@ def setProjectStructure():
276
279
).mkdir (parents = True , exist_ok = True )
277
280
278
281
279
- # Cria arquivo para exibir a saída do terminal,
280
- # se já existir o arquivo, limpa o mesmo
281
- outputClear = open (txtOutputFilePath , "w" , encoding = "UTF-8" )
282
- outputClear .close ()
282
+ # Cria arquivo para exibir a saída do terminal, se já
283
+ # existir o arquivo, limpa o mesmo
284
+ open (txtOutputFilePath , "w" ).close ()
283
285
284
286
# >> CONFIGURAÇÕES DO PANDAS <<
285
287
# Desc:
@@ -331,8 +333,8 @@ def showError(errorMessage, err):
331
333
332
334
txtOutputFile = open (txtOutputFilePath , "a" , encoding = "UTF-8" )
333
335
print (
334
- "********************************************************************** \n "
335
- "--- MENSAGEM --- \n "
336
+ "====================================================================== \n "
337
+ "[ MENSAGEM ] \n "
336
338
"\n "
337
339
"ERRO\n "
338
340
"Descrição: " + errorMessage + "\n " ,
@@ -347,7 +349,7 @@ def showError(errorMessage, err):
347
349
348
350
# Fecha o layout
349
351
print (
350
- "********************************************************************** " ,
352
+ "====================================================================== " ,
351
353
352
354
file = txtOutputFile
353
355
)
@@ -365,9 +367,10 @@ def showError(errorMessage, err):
365
367
# Isso é necessário para fazer com que não haja quebra de linha onde o DataFrame identifica
366
368
# como cabeçalho (título) da tabela caso o conteúdo delas seja muito grande.
367
369
# Isso acontece porque o título tem uma formatação gerada pelo DataFrame que difere-se do corpo,
368
- # o que acaba permitindo que isso ocorra.
370
+ # o que acaba permitindo que isso ocorra. O trabalho dessa função é transformar o cabeçalho em
371
+ # um texto de campo comum.
369
372
def turnHeaderInSimpleRow (tableDataFrame ):
370
- # Limpa a lista que vai ser usada para manipular o cabeçalho no DataFrame
373
+ # Cria e limpa a lista que vai ser usada para manipular o cabeçalho no DataFrame
371
374
tableDataFrameHeader = []
372
375
373
376
# Pegando o cabeçalho da tabela e passando ela como lista para a temporária
@@ -379,7 +382,7 @@ def turnHeaderInSimpleRow(tableDataFrame):
379
382
# Removendo o cabeçalho do DataFrame atual
380
383
tableDataFrame = tableDataFrame .T .reset_index ().T .reset_index (drop = True )
381
384
382
- # Adicionando a lista como primeira linha do DataFrame temporário
385
+ # Adicionando a lista como primeira linha do corpo do DataFrame temporário
383
386
tableDataFrameHeader .insert (1 , tableDataFrameHeader )
384
387
385
388
# Concatenando tabela temporária à tabela principal
@@ -408,9 +411,11 @@ def conversionStart(conversionMethod, tableDataFrame):
408
411
turnHeaderInSimpleRow (tableDataFrame )
409
412
410
413
# Removendo quebras de linha
411
- # O primeiro replace remove as que ocorrem por conta do corpo ser muito grande
412
- # O segundo replace remove as que acontecem por conta do ponto e vírgula
413
- tableDataFrame = tableDataFrame .replace ({r"\r" : " " }, regex = True ).replace ({r";" : "," }, regex = True )
414
+ # Remove quebras de linha do DataFrame que acontecem por conta do corpo ser
415
+ # muito grande
416
+ tableDataFrame .replace ({r"\r" : " " }, inplace = True , regex = True )
417
+ # Remove ponto e vírgula do DataFrame para evitar conflitos
418
+ tableDataFrame .replace ({r";" : "," }, inplace = True , regex = True )
414
419
415
420
# Define o caminho do arquivo atual para a variável global txtFilePath
416
421
txtFilePath = currentPath + "\\ resultados\\ " + conversionMethod + "\\ withoutFormatting\\ " + fileName + ".txt"
0 commit comments