Prerequisite: Tkinter, win32api
Python offers multiple options for developing GUI (Graphical User Interface). Out of all the GUI methods, tkinter is the most commonly used method. It is a standard Python interface to the Tk GUI toolkit shipped with Python. Python with tkinter is the fastest and easiest way to create GUI applications. Creating a GUI using tkinter is an easy task.
In this article, we will discuss how to print a hard copy in the printer using Tkinter.
Step-by-step Approach
- Make a Tkinter window.
- Add One Button.
- Open the file which you want to print using the askopenfilename() method in Tkinter.
- Print it using ShellExecute() method in win32api.
Create Normal Tkinter Window
# 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() |
Output:
Methods Used
- askopenfilename: This method is used to open a given file.
filedialog.askopenfilename(mode=’r’, filetypes=[(‘any name you want to display’, ‘extension of file type’)])
- ShellExecute: It is used to execute shell commands of a system.
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.
Below is the Implementation
# 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() |
On execution of the above python script, a tkinter window will pop up which will require to upload a text file, after uploading, the text file gets printed.