使用 wxPython 打印多页
Print multiple Pages with wxPython
我有一个 wxPython 文本编辑器,我刚刚添加了打印功能。
我正在测试它,并使用 MS 的打印到 PDF 打印了一个 PDF 文档。
当我打开 pdf 文档时,起初一切看起来都很好,但是当我向下滚动到页面底部时,没有第二页应该有的地方。
这是我的代码:
def printwindow(self, event):
pd = wx.PrintData()
pd.SetPrinterName("")
pd.SetOrientation(wx.PORTRAIT)
pd.SetPaperId(wx.PAPER_A4)
pd.SetQuality(wx.PRINT_QUALITY_DRAFT)
pd.SetColour(True)
pd.SetNoCopies(1)
pd.SetCollate(True)
pdd = wx.PrintDialogData()
pdd.SetPrintData(pd)
pdd.SetMinPage(1)
pdd.SetMaxPage(1)
pdd.SetFromPage(1)
pdd.SetToPage(1)
pdd.SetPrintToFile(False)
pdd.EnablePageNumbers(True)
pdd.EnableHelp(True)
dlg = wx.PrintDialog(self, pdd)
if dlg.ShowModal() == wx.ID_OK:
text = self.control.GetText()
dc = dlg.GetPrintDC()
dc.StartDoc("MyDoc")
dc.StartPage()
dc.SetMapMode(wx.MM_POINTS)
dc.SetTextForeground("black")
dc.SetFont(self.font)
dc.DrawText(text, 50, 100)
dc.EndPage()
dc.EndDoc()
del dc
else:
dlg.Destroy()
谁知道如何打印多页?文档超过一页。
找到解决方法:
class Printer(wx.html.HtmlEasyPrinting):
def __init__(self):
HtmlEasyPrinting.__init__(self)
def print(self, text, docname):
self.SetHeader(docname)
self.PrintText(text, docname)
我有一个 wxPython 文本编辑器,我刚刚添加了打印功能。
我正在测试它,并使用 MS 的打印到 PDF 打印了一个 PDF 文档。
当我打开 pdf 文档时,起初一切看起来都很好,但是当我向下滚动到页面底部时,没有第二页应该有的地方。
这是我的代码:
def printwindow(self, event):
pd = wx.PrintData()
pd.SetPrinterName("")
pd.SetOrientation(wx.PORTRAIT)
pd.SetPaperId(wx.PAPER_A4)
pd.SetQuality(wx.PRINT_QUALITY_DRAFT)
pd.SetColour(True)
pd.SetNoCopies(1)
pd.SetCollate(True)
pdd = wx.PrintDialogData()
pdd.SetPrintData(pd)
pdd.SetMinPage(1)
pdd.SetMaxPage(1)
pdd.SetFromPage(1)
pdd.SetToPage(1)
pdd.SetPrintToFile(False)
pdd.EnablePageNumbers(True)
pdd.EnableHelp(True)
dlg = wx.PrintDialog(self, pdd)
if dlg.ShowModal() == wx.ID_OK:
text = self.control.GetText()
dc = dlg.GetPrintDC()
dc.StartDoc("MyDoc")
dc.StartPage()
dc.SetMapMode(wx.MM_POINTS)
dc.SetTextForeground("black")
dc.SetFont(self.font)
dc.DrawText(text, 50, 100)
dc.EndPage()
dc.EndDoc()
del dc
else:
dlg.Destroy()
谁知道如何打印多页?文档超过一页。
找到解决方法:
class Printer(wx.html.HtmlEasyPrinting):
def __init__(self):
HtmlEasyPrinting.__init__(self)
def print(self, text, docname):
self.SetHeader(docname)
self.PrintText(text, docname)