Spaces:
Runtime error
Runtime error
tomaseo2022
commited on
Commit
路
d7730f8
1
Parent(s):
bb9d165
Update app.py
Browse files
app.py
CHANGED
@@ -1,39 +1,48 @@
|
|
1 |
import gradio as gr
|
2 |
-
import os
|
3 |
-
os.system("pip install PyMuPDF")
|
4 |
import fitz
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
for page in doc:
|
12 |
-
# Extraer texto de cada p谩gina
|
13 |
-
text = page.get_text().strip()
|
14 |
-
# Convertir el texto a un comando ZPL b谩sico
|
15 |
-
# Aqu铆 puedes a帽adir la l贸gica para ajustar la posici贸n y el formato seg煤n tu dise帽o de etiqueta
|
16 |
-
zpl_command = (
|
17 |
-
f"^XA\n" # Comienzo del formato de etiqueta
|
18 |
-
f"^CF0,60\n" # Selecciona la fuente y tama帽o
|
19 |
-
f"^FO50,50^FD{text}^FS\n" # Campo de datos (posici贸n y texto)
|
20 |
-
f"^XZ" # Fin del formato de etiqueta
|
21 |
-
)
|
22 |
-
zpl_commands.append(zpl_command)
|
23 |
-
|
24 |
-
# Cierra el documento PDF
|
25 |
-
doc.close()
|
26 |
-
|
27 |
-
# Une todos los comandos ZPL en un solo string
|
28 |
-
zpl_result = '\n'.join(zpl_commands)
|
29 |
-
return zpl_result
|
30 |
|
|
|
31 |
iface = gr.Interface(
|
32 |
-
fn=
|
33 |
-
inputs=gr.File(type="
|
34 |
-
outputs=gr.
|
35 |
-
title="Conversor de PDF a
|
36 |
-
description="Esta herramienta
|
37 |
)
|
38 |
|
39 |
if __name__ == "__main__":
|
|
|
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 |
)
|
47 |
|
48 |
if __name__ == "__main__":
|