pdf-a-xml / app.py
tomaseo2022's picture
Update app.py
78523c3 verified
import os
os.system("pip install -r requirements.txt")
os.system("pip install PyMuPDF")
import gradio as gr
import fitz # PyMuPDF
import tempfile
def pdf_to_xml(pdf_file):
try:
# Verificar si se recibi贸 un archivo
if pdf_file is None:
raise ValueError("No se recibi贸 ning煤n archivo PDF.")
pdf_document = fitz.open(stream=pdf_file, filetype="pdf")
pdf_text = ""
for page in pdf_document:
pdf_text += page.get_text()
# Recortar el texto para evitar nombres de archivo muy largos
max_chars = 30 # Ajusta este valor seg煤n sea necesario
if len(pdf_text) > max_chars:
pdf_text = pdf_text[:max_chars]
# Crear un archivo temporal con extensi贸n .xml para almacenar el texto
temp_dir = tempfile.mkdtemp()
temp_file_path = os.path.join(temp_dir, "converted_text.xml")
with open(temp_file_path, "w") as temp_file:
temp_file.write(pdf_text)
# Devolver la ruta del archivo temporal
return temp_file_path
except Exception as e:
return f"Error al procesar el archivo: {str(e)}"
file_input = gr.File(type="binary", label="Selecciona un archivo PDF")
file_output = gr.File(type="filepath", label="Descargar archivo XML")
iface = gr.Interface(fn=pdf_to_xml, inputs=file_input, outputs=file_output)
iface.launch(share=True)