Spaces:
Sleeping
Sleeping
tomaseo2022
commited on
Commit
路
44ff57c
1
Parent(s):
45026a4
Update app.py
Browse files
app.py
CHANGED
@@ -1,43 +1,46 @@
|
|
1 |
import gradio as gr
|
2 |
import fitz
|
3 |
from zipfile import ZipFile
|
|
|
4 |
import os
|
5 |
-
from tempfile import NamedTemporaryFile
|
6 |
|
|
|
7 |
def pdf_to_cbz(pdf_file):
|
8 |
-
if not pdf_file:
|
9 |
-
return create_error_file("No se carg贸 ning煤n archivo. Por favor, carga un archivo PDF.")
|
10 |
-
|
11 |
try:
|
12 |
-
#
|
|
|
|
|
|
|
13 |
pdf_filename, file_type, pdf_bytes = pdf_file
|
14 |
-
except ValueError:
|
15 |
-
return create_error_file("Error al procesar el archivo. Aseg煤rate de que sea un archivo PDF v谩lido.")
|
16 |
|
17 |
-
|
|
|
|
|
|
|
|
|
18 |
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
page = doc.load_page(page_num)
|
23 |
pix = page.get_pixmap()
|
24 |
-
|
25 |
-
img_filename = f"
|
26 |
-
zipf.writestr(img_filename,
|
27 |
|
28 |
-
|
29 |
-
|
30 |
-
return temp_cbz.name
|
31 |
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
|
|
36 |
|
|
|
37 |
iface = gr.Interface(
|
38 |
fn=pdf_to_cbz,
|
39 |
-
inputs=gr.File(type="
|
40 |
-
outputs=gr.File(label="Descargar archivo CBZ"),
|
41 |
title="Conversor de PDF a CBZ",
|
42 |
description="Esta herramienta convierte un archivo PDF en un archivo CBZ."
|
43 |
)
|
|
|
1 |
import gradio as gr
|
2 |
import fitz
|
3 |
from zipfile import ZipFile
|
4 |
+
import io
|
5 |
import os
|
|
|
6 |
|
7 |
+
# Funci贸n para convertir PDF a CBZ
|
8 |
def pdf_to_cbz(pdf_file):
|
|
|
|
|
|
|
9 |
try:
|
10 |
+
# Desempaquetar el archivo recibido
|
11 |
+
if pdf_file is None:
|
12 |
+
return "No se recibi贸 ning煤n archivo. Por favor, carga un archivo PDF."
|
13 |
+
|
14 |
pdf_filename, file_type, pdf_bytes = pdf_file
|
|
|
|
|
15 |
|
16 |
+
# Crear un documento con los bytes del PDF
|
17 |
+
pdf_document = fitz.open("pdf", pdf_bytes)
|
18 |
+
|
19 |
+
# Crear un archivo temporal en memoria para el CBZ
|
20 |
+
cbz_temp_file = io.BytesIO()
|
21 |
|
22 |
+
with ZipFile(cbz_temp_file, 'w') as zipf:
|
23 |
+
for page_num in range(len(pdf_document)):
|
24 |
+
page = pdf_document.load_page(page_num)
|
|
|
25 |
pix = page.get_pixmap()
|
26 |
+
img_bytes = pix.tobytes("png")
|
27 |
+
img_filename = f"{page_num}.png"
|
28 |
+
zipf.writestr(img_filename, img_bytes)
|
29 |
|
30 |
+
# Cerrar el documento PDF
|
31 |
+
pdf_document.close()
|
|
|
32 |
|
33 |
+
# Preparar el archivo CBZ para ser devuelto
|
34 |
+
cbz_temp_file.seek(0)
|
35 |
+
return cbz_temp_file.read(), "application/zip", "comic.cbz"
|
36 |
+
except Exception as e:
|
37 |
+
return f"Error al procesar el archivo: {str(e)}"
|
38 |
|
39 |
+
# Crear la interfaz de Gradio
|
40 |
iface = gr.Interface(
|
41 |
fn=pdf_to_cbz,
|
42 |
+
inputs=gr.File(type="file", label="Cargar archivo PDF"),
|
43 |
+
outputs=gr.File(type="file", label="Descargar archivo CBZ"),
|
44 |
title="Conversor de PDF a CBZ",
|
45 |
description="Esta herramienta convierte un archivo PDF en un archivo CBZ."
|
46 |
)
|