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

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +40 -31
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
- 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__":
 
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__":