Spaces:
Runtime error
Runtime error
import gradio as gr | |
import fitz | |
from zipfile import ZipFile | |
import io | |
import os | |
# Funci贸n para convertir PDF a CBZ | |
def pdf_to_cbz(pdf_file): | |
try: | |
# Desempaquetar el archivo recibido | |
if pdf_file is None: | |
return "No se recibi贸 ning煤n archivo. Por favor, carga un archivo PDF." | |
pdf_filename, file_type, pdf_bytes = pdf_file | |
# Crear un documento con los bytes del PDF | |
pdf_document = fitz.open("pdf", pdf_bytes) | |
# Crear un archivo temporal en memoria para el CBZ | |
cbz_temp_file = io.BytesIO() | |
with ZipFile(cbz_temp_file, 'w') as zipf: | |
for page_num in range(len(pdf_document)): | |
page = pdf_document.load_page(page_num) | |
pix = page.get_pixmap() | |
img_bytes = pix.tobytes("png") | |
img_filename = f"{page_num}.png" | |
zipf.writestr(img_filename, img_bytes) | |
# Cerrar el documento PDF | |
pdf_document.close() | |
# Preparar el archivo CBZ para ser devuelto | |
cbz_temp_file.seek(0) | |
return cbz_temp_file.read(), "application/zip", "comic.cbz" | |
except Exception as e: | |
return f"Error al procesar el archivo: {str(e)}" | |
# Crear la interfaz de Gradio | |
iface = gr.Interface( | |
fn=pdf_to_cbz, | |
inputs=gr.File(type="file", label="Cargar archivo PDF"), | |
outputs=gr.File(type="file", 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() | |