主要学习wxPython in action 和Demo程序,做点学习笔记
wxPython 通过使用设备上下文和绘制操作来实现打印,wxPython中实现打印的一个重要的类:wx.PrintOut它管理实际的图片部分。打印输出实例可以由一个代表打印机的wx.Printer对象或用于打印预览的wx.PrintPreview对象来管理。下面我介绍一下打印预览。
一,创建wx.PrintOut的子类,覆盖wx.PrintOut的方法以定义自己的打印行为。wx.PrintOut有多个个可以覆盖以自定义打印行为的方法,这些方法会被自动触发,然后通常不需要覆盖所有的方法。下面分析一下wxPython Demo中的类子来说明各个方法。
class MyPrintout(wx.Printout):
def __init__(self, canvas, log):
wx.Printout.__init__(self)
self.canvas = canvas
self.log = log
def OnBeginDocument(self, start, end):#其中参数start、end告诉wxPython打印的起始页和最后一页。
self.log.WriteText("MyPrintout.OnBeginDocument\n")#做你自己想做的操作
return super(MyPrintout, self).OnBeginDocument(start, end)#必须调用父类的方法,因为父类的方法要做一些重要的工作
def OnEndDocument(self):#文档副本打印结束后,被触发。
self.log.WriteText("MyPrintout.OnEndDocument\n")
super(MyPrintout, self).OnEndDocument()#同样必须调用父类的方法
def OnBeginPrinting(self):#一般情况不需要重载该方法
self.log.WriteText("MyPrintout.OnBeginPrinting\n")
super(MyPrintout, self).OnBeginPrinting()
def OnEndPrinting(self):#当副本打印完成后,该方法被调用,以结束打印
self.log.WriteText("MyPrintout.OnEndPrinting\n")
super(MyPrintout, self).OnEndPrinting()
def OnPreparePrinting(self):#通常