Foros Python

Versión completa: Lanzar una funcion a la impresora en vez de a la pantalla
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
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.
Hola, bienvenido.

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

Código:
import subprocess
lpr =  subprocess.Popen("/usr/bin/lpr", stdin=subprocess.PIPE)
lpr.stdin.write(your_data_here)

En Windows:

Código:
import os
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
Muchas gracias Francisco,
perdona el retraso, busco y pongo en práctica lo que me has comentado.