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)