tomaseo2022 commited on
Commit
f21e27b
1 Parent(s): d7730f8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +32 -42
app.py CHANGED
@@ -1,49 +1,39 @@
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__":
49
- iface.launch()
 
1
  import gradio as gr
 
 
 
2
  import os
3
+ os.system("pip install PyMuPDF")
4
+ import fitz
5
 
6
+ def pdf_to_zpl(pdf_bytes):
7
+ # Abre el PDF con PyMuPDF
8
+ doc = fitz.open("pdf", pdf_bytes)
9
+ zpl_commands = []
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=pdf_to_zpl,
33
+ inputs=gr.File(type="binary", label="Cargar archivo PDF"),
34
+ outputs=gr.Textbox(label="C贸digo ZPL"),
35
+ title="Conversor de PDF a ZPL",
36
+ description="Esta herramienta intenta convertir un archivo PDF en c贸digo ZPL."
37
  )
38
 
39
+ if __name__ == "__main__":