Spaces:
Sleeping
Sleeping
File size: 1,327 Bytes
d8bf29e 1405ca8 b42ca12 22ea758 b42ca12 4efd143 cf43abc effee4c 22ea758 44ff57c 22ea758 b42ca12 ceb26e7 22ea758 b42ca12 22ea758 fb0ce36 22ea758 fb0ce36 44ff57c 22ea758 b42ca12 32f94ef 44ff57c 866e746 32f94ef 5d2f8aa b42ca12 1405ca8 45026a4 22ea758 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
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()
|