Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Lanzar una funcion a la impresora en vez de a la pantalla
#1
Buenas tardes compañer@s,
He empezado con Python hace poco, y he creado una aplicación para imprimir tarjetas identificativas, que toma datos de Sqlite y los imprime con una foto y un fondo.
El problema es que cuando lanzo la función para imprimir la tarjeta, la saca perfectamente por pantalla, pero no se como enviarla a la impresora en vez de a la pantalla.
El módulo es el siguiente:
def imprimir_tarjeta(self):

        self.fondo1=PhotoImage(file="C:/Python/Fotos/Fondo25.png")
        self.lblFondo1=Label(self.ventana,image=self.fondo1).place(x=700,y=0) #fondo
     
        #self.imagen = PhotoImage(file="C:/Python/Fotos/%s.png"% datos)
        self.labelf = Label(self.ventana,image=self.imagen, bd=0).place(x=720, y=10, width=125, height=155)
        #self.labelf.place(x=720, y=10, width=125, height=155)


        self.label23=Label(self.ventana, bg="#ffffff", font=('', 16, 'bold'), textvariable=self.nombre, width=35, anchor='center')
        self.label23.place(x=860, y=30)


        self.label23=Label(self.ventana, bg="#ffffff", font=('', 16, 'bold'), textvariable=self.categoria,width=35, anchor='center')
        self.label23.place(x=860, y=100)

        self.label24=Label(self.ventana, bg="#ffffff", font=('', 16, 'bold'), textvariable=self.cargo,width=35, anchor='center')
        self.label24.place(x=860, y=170)

Muchas gracias.
Responder
#2
Hola, bienvenido.

No hay un método estándar para imprimir desde Python. En Linux podés usar algo así:

  1. import subprocess
  2. lpr = subprocess.Popen("/usr/bin/lpr", stdin=subprocess.PIPE)
  3. lpr.stdin.write(your_data_here)


En Windows:

  1. import os
  2. os.startfile("C:/Users/TestFile.txt", "print")


Fuente: https://stackoverflow.com/questions/1272...rom-python.

De todas formas, necesitás tener un archivo (de imagen, PDF, de texto, etc.) para poder imprimir algo. No podés imprimir directamente una porción de tu ventana de Tk (a menos que hagas una captura de ella y la guardes como una imagen). Podés usar Reportlab para generar un PDF y mandarlo a imprimir o bien Pillow para hacerlo con una imagen.

Saludos
Responder
#3
Muchas gracias Francisco,
perdona el retraso, busco y pongo en práctica lo que me has comentado.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)