pdf-a-cbz / app.py
tomaseo2022's picture
Update app.py
b42ca12
import gradio as gr
import fitz
import tempfile
import zipfile
import os
def pdf_to_cbz(pdf_file):
try:
# Verificar si se recibi贸 un archivo
if pdf_file is None:
raise ValueError("No se recibi贸 ning煤n archivo PDF.")
# Leer el archivo PDF desde los bytes recibidos
pdf = fitz.open(stream=pdf_file, filetype="pdf")
# Crear un archivo ZIP temporal para el CBZ
temp_dir = tempfile.mkdtemp()
cbz_filename = os.path.join(temp_dir, "output.cbz")
with zipfile.ZipFile(cbz_filename, "w") as zipf:
for page_num in range(len(pdf)):
page = pdf.load_page(page_num)
pix = page.get_pixmap()
img_data = pix.tobytes("png")
zipf.writestr(f"page_{page_num + 1}.png", img_data)
# Cerrar el documento PDF
pdf.close()
return cbz_filename
except Exception as e:
return f"Error al procesar el archivo: {str(e)}"
iface = gr.Interface(
fn=pdf_to_cbz,
inputs=gr.File(type="binary", label="Cargar archivo PDF"),
outputs=gr.File(type="filepath", label="Descargar archivo CBZ"),
title="Conversor de PDF a CBZ",
description="Esta herramienta convierte un archivo PDF en un archivo CBZ."
)
if __name__ == "__main__":
iface.launch()