Printing in wxPython
Anand B Pillai
abpillai at lycos.com
Fri Mar 28 16:17:00 CET 2003
Can anyone post some sample code on printing in wxPython ?
I want to print a wxBitmap displayed in a window(a wxPanel).
I went through the printing sample of wxWindows in C++, but looks
like there is no similar example for python.
I am following the printing guidelines and deriving my printout
class from wxPrintout. But the problem is how do I pass a device
context to it ? I cannot understand how I can pass the bitmap of
my wxPanel to the printer device context of the wxPrintout class.
Here is a snippet of my code.
def OnPrintPage(self, pgno):
dc = wxPrintout_GetDC()
#What to do with this dc ?
def OnBeginDocument(self, pgstart, pgend):
if not wxPrintout_OnBeginDocument(pgstart, pgend):
Moreover the python interpreter gives a NameError for the methods
wxPrintout_GetDC() and wxPrintout_OnBeginDocument(). What I am trying
to do is call the method of the parent class wxPrintout in my
PrintPage() method. I think
that I should not be getting this error! :-#
Quoting from the wxPython documentation:
bool OnBeginDocument(int startPage, int endPage)
Called by the framework at the start of document printing. Return
FALSE from this function cancels the print job. OnBeginDocument is
called once for every copy printed.
The base wxPrintout::OnBeginDocument must be called (and the return
value checked) from within the overridden function, since it calls
wxPython note: If this method is overridden in a Python class then
the base class version can be called by using the
According to this, I should not be getting both the errors.
The printing example given is also very confusing. It is not very
how the device context of the current window is passed to the printer.
would be helpful if anyone who has got it right could enlighten. :-)
Thanks for your help,
More information about the Python-list