python 报表打印预览_python学习笔记之wxpython打印预览

本文介绍了如何利用wxPython库进行报表打印预览的实现,详细讲解了wx.PrintOut子类的创建和wx.PrintPreview的使用,包括OnBeginDocument、OnEndDocument等关键方法的覆盖,以及如何展示打印预览窗口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主要学习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):#通常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值