The printer seems to be a much ignored computer peripheral when it comes to programming. This little code snippet explores one way to send text to the default printer. It actually draws the text into an imaginary box on the paper. You can specify the upper left and lower right corners of this box.
Sending Text to the Printer (Python)
# type/draw a text string to the default printer
# needs the win32 extensions package pywin32-204.win32-py2.4.exe
# from: http://starship.python.net/crew/mhammond/win32/Downloads.html
# make sure the printer is turned on and ready ...
# tested with Python24 vegaseat 14oct2005
import win32ui
import win32print
import win32con
str1 = \
"""W.H.O. influenza chief Albrecht Stohr is not optimistic that generic producers would be able to
make Tamiflu, the first line of defense against a potential H5N1 bird flu virus pandemic. He told
reporters in San Diego that the drug has 28 distinct chemical steps and takes a full year to make.
It also involves a dangerous, potentially explosive process step that would drive away all but the
most sophisticated manufacturers. It would take a generic supplier at least "two years" to put such
a complex production plant on stream.
In addition, Stohr said, a starter chemical for Tamiflu is isolated from a Chinese spice called
"star anise", whose seeds are used in flavorings, medicines and cooking oils. Most of the world
production of "star anise" is located in five provinces of China right now, and the supply has been
back ordered, primarily for the production of Tamiflu by Swiss drug manufacturer Roche.
"""
#str1 = str1 + str1 + str1 + str1 # test height of text area
hDC = win32ui.CreateDC()
print win32print.GetDefaultPrinter() # test
hDC.CreatePrinterDC(win32print.GetDefaultPrinter())
hDC.StartDoc("Test doc")
hDC.StartPage()
hDC.SetMapMode(win32con.MM_TWIPS)
# draws text within a box (assume about 1400 dots per inch for typical HP printer)
ulc_x = 1000 # give a left margin
ulc_y = -1000 # give a top margin
lrc_x = 11500 # width of text area-margin, close to right edge of page
lrc_y = -15000 # height of text area-margin, close to bottom of the page
hDC.DrawText(str1, (ulc_x, ulc_y, lrc_x, lrc_y), win32con.DT_LEFT)
hDC.EndPage()
hDC.EndDoc()
Sidney_3 0 Newbie Poster
Djcordeiro 15 Newbie Poster
rproffitt commented: At 15 years ago, it's best to start a new discussion as this is likely what they say? Deprecated. +15
Be a part of the DaniWeb community
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.