1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| import win32print
import win32api
from tkinter import filedialog, Listbox, Tk, ttk, N, S, W, E, StringVar, Button
import tkinter as tk
Imprimante = []
global selected_printer
def choix_imprime(event):
global selected_printer
selected_indice = lbl.curselection()
selected_printer = ",".join([lbl.get(i) for i in selected_indice])
selected_printer = '"' + selected_printer + '"'
Texte.set(selected_printer)
def imprime():
FILE_PATH = 'c:\\dfi_5012\\pdf'
fichier = filedialog.askopenfilename(initialdir=FILE_PATH)
fichier = '"' + fichier + '"'
win32api.ShellExecute(0, "printto", fichier, selected_printer, None, 0)
for (Flags, pDescription, pNameL, pComment) in list(
win32print.EnumPrinters(win32print.PRINTER_ENUM_LOCAL, None, 1)):
Imprimante.append(pNameL)
for (Flags, pDescription, pNameR, pComment) in list(
win32print.EnumPrinters(
win32print.PRINTER_ENUM_CONNECTIONS, None, 1)):
Imprimante.append(pNameR)
imprim = Tk()
Texte = StringVar()
imprim.title("Choix de l'imprimante")
mainframe = ttk.Frame(imprim, padding="3 3 12 12")
mainframe.grid(column=0, row=0, sticky=(N, S, W, E))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)
labl = ttk.Label(mainframe, text="Choix de l'imprimante")
labl.grid(column=0, row=0, sticky=(W, E))
var = tk.Variable(value=Imprimante)
lbl = Listbox(mainframe, selectmode="BROWSE", listvariable=var)
lbl.grid(column=0, row=1, sticky=(W, E))
selected_printer = StringVar()
text = tk.Label(mainframe, textvariable=Texte, width=30)
text.grid(column=1, row=0, sticky=(W, E))
btn = Button(mainframe, text="Lancer l'impression",
command=lambda: imprime())
btn.grid(column=1, row=1, sticky=(E, W))
for i in range(0, len(Imprimante)):
lbl.insert(i, Imprimante[i])
selected_indice = lbl.curselection()
lbl.bind('<<ListboxSelect>>', choix_imprime)
imprim.mainloop() |
Partager