Skip to content

Instantly share code, notes, and snippets.

@buptxge
Created April 7, 2016 08:38
Show Gist options
  • Save buptxge/2fc61a3f914645cf8ae2c9a258ca06c9 to your computer and use it in GitHub Desktop.
Save buptxge/2fc61a3f914645cf8ae2c9a258ca06c9 to your computer and use it in GitHub Desktop.
Print image using win32print and PIL
import win32print
import win32ui
from PIL import Image, ImageWin
PHYSICALWIDTH = 110
PHYSICALHEIGHT = 111
printer_name = win32print.GetDefaultPrinter ()
file_name = "new.jpg"
hDC = win32ui.CreateDC ()
hDC.CreatePrinterDC (printer_name)
printer_size = hDC.GetDeviceCaps (PHYSICALWIDTH), hDC.GetDeviceCaps (PHYSICALHEIGHT)
bmp = Image.open (file_name)
if bmp.size[0] < bmp.size[1]:
bmp = bmp.rotate (90)
hDC.StartDoc (file_name)
hDC.StartPage ()
dib = ImageWin.Dib (bmp)
dib.draw (hDC.GetHandleOutput (), (0,0,printer_size[0],printer_size[1]))
hDC.EndPage ()
hDC.EndDoc ()
hDC.DeleteDC ()
@KJCAUS
Copy link

KJCAUS commented Feb 20, 2024

Thank you so much!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment