How do i print to a printer using python?
Naveed Iqbal
iqbal at colorado.edu
Mon Sep 9 20:41:56 EDT 2002
Thank you all for your help. I am really a novice when it comes to
python. Will someone tell me how to install the win32ui module in
windows?
thanka
naveed
Eric Brunel <eric.brunel at pragmadev.com> wrote in message news:<al73gj$lbt$1 at wanadoo.fr>...
> Naveed Iqbal wrote:
> > I have to print to a standard printer. I take the data from the
> > keyboard and print it using the printer. Please help me....my job
> > depends on this!!!!
>
> Things are quite different on Unix and Windows. Just a sample (untested)
> program to print "Hello world!" to the default printer on both platforms:
>
> ----Unix----------------------
> import os
> p = os.popen('lpr', 'w')
> p.write("Hello world!\n")
> p.close()
> ------------------------------
>
> ----Windows-------------------
> import win32ui
>
> dc = win32ui.CreateDC()
> dc.CreatePrinterDC()
> dc.SetMapMode(4) # This is UI_MM_LOENGLISH
> ## With this map mode, 12 points is 12*100/72 units = 16
> font = win32ui.CreateFont({'name' : 'Arial', 'height' : 16})
> dc.SelectObject(font)
>
> dc.StartDoc("HelloWorld")
> dc.StartPage()
> dc.TextOut(40, 40, "Hello world!")
> dc.EndPage()
> dc.EndDoc()
> ------------------------------
>
> And now you wish you were on Unix ;-)!
>
> For more information on the Windows version, see the documenattion for
> win32ui @
> http://aspn.activestate.com//ASPN/Python/Reference/Products/ActivePython/PythonWin/modules.html
> and Micro$oft MFC documenation @
> http://msdn.microsoft.com/library/default.asp
>
> Good luck!
>
> PS: I'm actually a little biased towards Unix... In fact, if you have the
> printer directly connected to your PC, opening LPT1: and just writing the
> text to it should work. But if it's a network printer, the only solution is
> the code above...
>
> We also can make things a little more complicated on Unix by using
> PostScript. But it's still shorter:
>
> import os
> p = os.popen('lpr', 'w')
> p.write('%!PS\n')
> p.write('/Helvetica findfont 12 scalefont setfont\n')
> p.write('/cm { 72 mul 2.54 div } def\n')
> p.write('1 cm 28 cm moveto\n')
> p.write('(Hello world!) show\n')
> p.write('showpage\n')
> p.close()
More information about the Python-list
mailing list