xml-a-pdf / app.py
tomaseo2022's picture
Update app.py
82d688c
raw
history blame
1.25 kB
import os
os.system("pip install PyMuPDF")
import gradio as gr
import fitz # PyMuPDF
import tempfile
def xml_to_pdf(xml_file):
try:
# Verificar si se recibi贸 un archivo
if xml_file is None:
raise ValueError("No se recibi贸 ning煤n archivo XML.")
# Leer el contenido del archivo XML
xml_text = xml_file.read().decode("utf-8")
# Crear un archivo temporal con extensi贸n .pdf para almacenar el texto
temp_dir = tempfile.mkdtemp()
temp_file_path = os.path.join(temp_dir, "converted_pdf.pdf")
# Usar PyMuPDF para crear un documento PDF con el texto del archivo XML
pdf_document = fitz.open()
pdf_page = pdf_document.new_page()
pdf_page.insert_text((50, 50), xml_text)
pdf_document.save(temp_file_path)
pdf_document.close()
# Devolver la ruta del archivo temporal PDF
return temp_file_path
except Exception as e:
return f"Error al procesar el archivo: {str(e)}"
file_input = gr.File(label="Selecciona un archivo XML", type="binary")
file_output = gr.File(label="Descargar archivo PDF", type="download")
iface = gr.Interface(xml_to_pdf, inputs=file_input, outputs=file_output)
iface.launch(share=True)