Printing a file

Fabian Steiner lists at
Wed Mar 1 16:38:23 CET 2006


Thank you so far, but now I got stuck again :-/

Jeremy Sanders wrote:
> QPrinter is easy to use. You just draw to the page the same way as you talk
> to the screen with a QPainter.
> prnt = qt.QPrinter()
> # you can also vary options like colour, doc name, dpi here
> # display dialog box to user (you can actually leave this out)
> if prnt.setup():
>      painter = qt.QPainter()
>      painter.begin(printer)
>      # do stuff to draw to painter
>      painter.end(printer)
>      # do this between each page
>      printer.newPage()

This is what I have so far:

app = QApplication(sys.argv)
printer = QPrinter(QPrinter.PrinterResolution)
if printer.setup():
     painter = QPainter(printer)
     metrics = QPaintDeviceMetrics(painter.device())
     marginHeight = 6
     marginWidth =  8
     body = QRect(marginWidth, marginHeight, metrics.widthMM() - 2 * 
marginWidth, metrics.heightMM() - 2 * marginHeight)

Doing so I hoped to get a rectangle which is as big as an A4 paper (with 
a small border), but unfortunately it is much smaller. Moreover, I ask 
myself whether it is necessary that in order to write text on the paper, 
I always have to pass the proper x, y values to QPainter.drawText(). 
Isn't there any other possibility? How do I get these values?

Thanks in advance,
Fabian Steiner

More information about the Python-list mailing list