Skip to content

Instantly share code, notes, and snippets.

@kharysharpe
Forked from buptxge/print_with_win32print.py
Created September 16, 2019 03:10
Show Gist options
  • Save kharysharpe/8fb4ddea10f02015dec50224be10cf2f to your computer and use it in GitHub Desktop.
Save kharysharpe/8fb4ddea10f02015dec50224be10cf2f 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 ()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment