eberhenriquez94 commited on
Commit
afc97e1
verified
1 Parent(s): 2810ff3
Files changed (1) hide show
  1. app.py +23 -14
app.py CHANGED
@@ -34,24 +34,32 @@ def simplificar_pdf(input_pdf, output_pdf):
34
  def crear_pdf_con_texto_incrustado(pdf_original, archivo_salida, idioma="spa"):
35
  """Procesa un PDF con OCR usando OCRmyPDF."""
36
  comando = f"ocrmypdf -l {idioma} --force-ocr --deskew --output-type pdf {shlex.quote(pdf_original)} {shlex.quote(archivo_salida)}"
37
- ejecutar_comando(comando)
 
 
 
 
 
38
 
39
  def flujo_principal(pdf_file, idioma="spa"):
40
  """Procesa un PDF subido con reparaci贸n, simplificaci贸n y OCR."""
41
  if not pdf_file:
42
  raise gr.Error("No se subi贸 ning煤n archivo.")
43
 
44
- with tempfile.NamedTemporaryFile(suffix=".pdf", delete=False) as reparado_pdf:
45
- reparar_pdf(pdf_file, reparado_pdf.name)
46
-
47
- with tempfile.NamedTemporaryFile(suffix=".pdf", delete=False) as simplificado_pdf:
48
- simplificar_pdf(reparado_pdf.name, simplificado_pdf.name)
49
- os.remove(reparado_pdf.name)
50
-
51
- with tempfile.NamedTemporaryFile(suffix=".pdf") as output_pdf:
52
- crear_pdf_con_texto_incrustado(simplificado_pdf.name, output_pdf.name, idioma)
53
- os.remove(simplificado_pdf.name)
54
- return output_pdf.name, output_pdf.name # Retorna la ruta dos veces
 
 
 
55
 
56
 
57
  # Interfaz Gradio
@@ -64,8 +72,9 @@ with gr.Blocks() as interfaz:
64
  boton_procesar = gr.Button("Procesar OCR")
65
 
66
  with gr.Row():
67
- pdf_vista = PDF(label="Visor PDF")
68
- pdf_descarga = gr.File(label="Descargar PDF procesado", visible=True)
 
69
 
70
  boton_procesar.click(
71
  fn=flujo_principal,
 
34
  def crear_pdf_con_texto_incrustado(pdf_original, archivo_salida, idioma="spa"):
35
  """Procesa un PDF con OCR usando OCRmyPDF."""
36
  comando = f"ocrmypdf -l {idioma} --force-ocr --deskew --output-type pdf {shlex.quote(pdf_original)} {shlex.quote(archivo_salida)}"
37
+ try:
38
+ output = ejecutar_comando(comando)
39
+ logger.info(f"Salida de ocrmypdf: {output}")
40
+ except RuntimeError as e:
41
+ logger.error(f"Error en ocrmypdf: {e}")
42
+ raise
43
 
44
  def flujo_principal(pdf_file, idioma="spa"):
45
  """Procesa un PDF subido con reparaci贸n, simplificaci贸n y OCR."""
46
  if not pdf_file:
47
  raise gr.Error("No se subi贸 ning煤n archivo.")
48
 
49
+ with tempfile.NamedTemporaryFile(suffix=".pdf", delete=False) as temp_pdf:
50
+ try:
51
+ reparar_pdf(pdf_file, temp_pdf.name)
52
+ simplificar_pdf(temp_pdf.name, temp_pdf.name)
53
+ crear_pdf_con_texto_incrustado(temp_pdf.name, temp_pdf.name, idioma)
54
+ ruta_final = temp_pdf.name
55
+ return gr.File(value=ruta_final, label="PDF procesado"), ruta_final # gr.File para pdf_vista
56
+ except Exception as e:
57
+ logger.exception(f"Error durante el procesamiento: {e}") # Loggea la excepci贸n completa
58
+ raise gr.Error(f"Error al procesar el PDF: {e}")
59
+ finally:
60
+ # Elimina el archivo temporal al final, incluso si hay errores
61
+ if os.path.exists(temp_pdf.name):
62
+ os.remove(temp_pdf.name)
63
 
64
 
65
  # Interfaz Gradio
 
72
  boton_procesar = gr.Button("Procesar OCR")
73
 
74
  with gr.Row():
75
+ pdf_vista = gr.File(label="Visor PDF") # Cambiado a gr.File
76
+ pdf_descarga = gr.File(label="Descargar PDF procesado", visible=False)
77
+
78
 
79
  boton_procesar.click(
80
  fn=flujo_principal,