# -*- coding: cp1251 -*-
import wx
from wxPython.wx import *
import wx.html as html
import wx.lib.printout as printer
class MyFrame(wx.Frame):
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, -1, title, size=(450, 500))
wind = wxSplitterWindow(self, -1)
pan1 = wxPanel(wind, -1)
pan2 = wxPanel(wind, -1)
wind.SetMinSize((450,500))
pan1.SetMinSize((450,425))
pan2.SetMinSize((450,30))
Font = wx.Font(10, wx.SWISS, wx.NORMAL, wx.BOLD)
wind.SplitHorizontally(pan1, pan2)
sizer_1 = wx.BoxSizer(wx.VERTICAL)
sizer_2 = wx.BoxSizer(wx.HORIZONTAL)
self.html = html.HtmlWindow(pan1, -1, style = wx.NO_FULL_REPAINT_ON_RESIZE)
self.html.SetMinSize((450,425))
self.printer = html.HtmlEasyPrinting()
self.current="c:/anketa.htm"
self.html.LoadPage(self.current)
self.btn1 = wx.Button(pan2, -1, "Печать")
self.btn1.SetFont(Font)
self.btn2 = wx.Button(pan2, -1, "Закрыть")
self.btn2.SetFont(Font)
EVT_BUTTON(self, self.btn1.GetId(), self.on_print)
EVT_BUTTON(self, self.btn2.GetId(), self.on_close)
pan1.SetSizer(sizer_1)
pan2.SetSizer(sizer_2)
sizer_1.Add(self.html, 0, wx.EXPAND)
sizer_2.Add(self.btn1, -1, wx.EXPAND)
sizer_2.Add(self.btn2, -1, wx.EXPAND)
def on_print(self, evt):
self.printer.GetPrintData().SetPaperId(wx.PAPER_LETTER)
self.printer.PrintFile(self.html.GetOpenedPage())
evt.Skip()
def on_close(self, evt):
self.Destroy()
evt.Skip()
class MyApp(wx.App):
def OnInit(self):
wxInitAllImageHandlers()
frame_1 = MyFrame(None, "Просмотр HTML")
self.SetTopWindow(frame_1)
frame_1.Show()
return True
if __name__ == "__main__":
app = MyApp()
app.MainLoop()
Такой пример пойдет?