Spaces:
Runtime error
Runtime error
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) | |