Skip to content
Related Articles
Get the best out of our app
GeeksforGeeks App
Open App
geeksforgeeks
Browser
Continue

Related Articles

How to Print Hard Copy using Tkinter?

Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article

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

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()

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

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()

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.


My Personal Notes arrow_drop_up
Last Updated : 24 Jan, 2021
Like Article
Save Article
Similar Reads
Related Tutorials