Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os
- os.startfile("C:/Users/Jdash/Desktop/TestFile.txt", "print")
- # create a dc (Device Context) object (actually a PyCDC)
- dc = win32ui.CreateDC()
- # convert the dc into a "printer dc"
- # get default printer
- printername = win32print.GetDefaultPrinter ()
- # leave out the printername to get the default printer automatically
- dc.CreatePrinterDC(printername)
- # you need to set the map mode mainly so you know how
- # to scale your output. I do everything in points, so setting
- # the map mode as "twips" works for me.
- dc.SetMapMode(win32con.MM_TWIPS) # 1440 per inch
- # here's that scaling I mentioned:
- scale_factor = 20 # i.e. 20 twips to the point
- # start the document. the description variable is a string
- # which will appear in the print queue to identify the job.
- dc.StartDoc('Win32print test')
- # to draw anything (other than text) you need a pen.
- # the variables are pen style, pen width and pen color.
- pen = win32ui.CreatePen(0, int(scale_factor), 0)
- # SelectObject is used to apply a pen or font object to a dc.
- dc.SelectObject(pen)
- # how about a font? Lucida Console 10 point.
- # I'm unsure how to tell if this failed.
- font = win32ui.CreateFont({
- "name": "Lucida Console",
- "height": int(scale_factor * 10),
- "weight": 400,
- })
- # again with the SelectObject call.
- dc.SelectObject(font)
- # okay, now let's print something.
- # TextOut takes x, y, and text values.
- # the map mode determines whether y increases in an
- # upward or downward direction; in MM_TWIPS mode, it
- # advances up, so negative numbers are required to
- # go down the page. If anyone knows why this is a
- # "good idea" please email me; as far as I'm concerned
- # it's garbage.
- dc.TextOut(scale_factor * 72,
- -1 * scale_factor * 72,
- "Testing...")
- # must not forget to tell Windows we're done.
- dc.EndDoc()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement