Spaces:
Sleeping
Sleeping
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() | |