如何使用 Tkinter 打印硬拷贝?
先决条件: Tkinter,win32api
Python为开发 GUI(图形用户界面)提供了多种选择。在所有 GUI 方法中,tkinter 是最常用的方法。它是Python附带的 Tk GUI 工具包的标准Python接口。使用 tkinter 的Python是创建 GUI 应用程序的最快和最简单的方法。使用 tkinter 创建 GUI 是一项简单的任务。
在本文中,我们将讨论如何使用 Tkinter 在打印机中打印硬拷贝。
循序渐进的方法
- 制作一个 Tkinter 窗口。
- 添加一个按钮。
- 使用打开要打印的文件 Tkinter 中的askopenfilename()方法。
- 使用 win32api 中的ShellExecute()方法打印它。
创建普通的 Tkinter 窗口
Python3
# Import Required Library
from tkinter import *
# Create Tkinter Object
root = Tk()
# Set Title and geometry
root.title('Print Hard Copies')
root.geometry("200x200")
# Make Button
Button(root,text="Print FIle").pack()
# Execute Tkinter
root.mainloop()
Python3
# Import Required Library
from tkinter import *
import win32api
from tkinter import filedialog
# Create Tkinter Object
root = Tk()
# Set Title and geometry
root.title('Print Hard Copies')
root.geometry("200x200")
# Print File Function
def print_file():
# Ask for file (Which you want to print)
file_to_print = filedialog.askopenfilename(
initialdir="/", title="Select file",
filetypes=(("Text files", "*.txt"), ("all files", "*.*")))
if file_to_print:
# Print Hard Copy of File
win32api.ShellExecute(0, "print", file_to_print, None, ".", 0)
# Make Button
Button(root, text="Print FIle", command=print_file).pack()
# Execute Tkinter
root.mainloop()
输出:
使用的方法
- askopenfilename:此方法用于打开给定的文件。
filedialog.askopenfilename(mode=’r’, filetypes=[(‘any name you want to display’, ‘extension of file type’)])
- ShellExecute:用于执行系统的shell命令。
win32api.ShellExecute(hwnd, dir, bShow, op, file, params, **args)
hwnd: The handle of the parent window, or zero for no parent. This window receives associate message boxes an application produces (for example, for error reporting).
op: The operation to perform. is also “open”, “print”, or None, that defaults to “open”.
file: The name of the file to open.
params: The parameters to pass, if the file name contains associate viable. ought to be None for a document file.
dir: The initial directory for the application.
bShow: Specifies whether the appliance is shown once it’s opened. If the lpszFile parameter specifies a document file, this parameter is zero.
下面是实现
蟒蛇3
# Import Required Library
from tkinter import *
import win32api
from tkinter import filedialog
# Create Tkinter Object
root = Tk()
# Set Title and geometry
root.title('Print Hard Copies')
root.geometry("200x200")
# Print File Function
def print_file():
# Ask for file (Which you want to print)
file_to_print = filedialog.askopenfilename(
initialdir="/", title="Select file",
filetypes=(("Text files", "*.txt"), ("all files", "*.*")))
if file_to_print:
# Print Hard Copy of File
win32api.ShellExecute(0, "print", file_to_print, None, ".", 0)
# Make Button
Button(root, text="Print FIle", command=print_file).pack()
# Execute Tkinter
root.mainloop()
在执行上面的Python脚本时,会弹出一个tkinter窗口,需要上传一个文本文件,上传后,文本文件被打印出来。