Direct Output to the Printer with Windows

The next technique to look at is Windows printing. We start off with a minimal example, then discuss the principles behind it. Start by typing the following at a Python console:

>>> import win32ui
>>> dc = win32ui.CreateDC()
>>> dc.CreatePrinterDC()
>>> dc.StartDoc('My Python Document')
>>>

At this point, you’ll see a printer icon in the System Tray. Double-click, and you see Figure 10.4.

The Windows print queue
Figure 10.4. The Windows print queue

Now we’ll print a few words and draw a line on the page:

>>> dc.StartPage()
>>> dc.TextOut(100,100, 'Python Prints!')
>>> dc.MoveTo(100, 102)
(0, 0)
>>> dc.LineTo(200, 102)
>>> dc.EndPage()
>>>

As soon as you type EndPage, your page should begin to print on your default printer. The Status column in the Printer window changes to look like Figure 10.5.

Document printing, while still being written
Figure 10.5. Document printing, while still being written

Finally, tell Windows you’ve finished printing:

>>> dc.EndDoc()
>>>

Hopefully, a few seconds later you will have a page with the words Python Prints near the top left and a horizontal line just above it.

If you’ve ever done any Windows graphics programming, this will be familiar. The variable dc is an instance of the Python class PyCDC , which is a wrapper around a Windows Device Context. The Device Context provides methods ...

Get Python Programming On Win32 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.