Форум сайта python.su
class MyFrameHtml(wx.Frame):
#создание формы
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, -1, title,
size=(450, 500))
_icon = wxEmptyIcon()
_icon.CopyFromBitmap(wxBitmap(“c:/cb/cfg/cb2.png”, wxBITMAP_TYPE_ANY))
self.SetIcon(_icon)
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:/myhtml.htm”
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()
Таким образом я помещаю html-страницу в форму и могу вывести ее на печать из своей программы. Но не все можно реализовать посредством html, иногда приходится формировать xls-таблицу. Недостаток работы с pyExcelerator в том, что на печать придется выводить, предварительно найдя на диске сформированный xls-файл и открыв его. Нельзя ли каким-нибудь образом открыть содержимое xls-файла внутри формы, как это сделано для html-файла?
Офлайн
Не понял вопроса. В чем проблема найти файл и открыть его? А конкретно по твоему вопросу используй ActiveX, если работаешь под оффтопиком. Но я не знаю дружит ли wx… c ActiveX. Хотя я бы этим не баловался.
Отредактировано (Июль 6, 2007 10:01:29)
Офлайн
baluЧто значит “под оффтопиком”? Я проверила, есть либы wx для открытия pdf, html, flash-файлов. и есть просто ActiveXWindow, т.е. возможно использовать файлы других приложений, только как это сделать? может кому-то встречались примеры?
А конкретно по твоему вопросу используй ActiveX, если работаешь под оффтопиком. Но я не знаю дружит ли wx… c ActiveX. Хотя я бы этим не баловался.
Офлайн
proDivaВот пример из закромов родины
Что значит “под оффтопиком”? Я проверила, есть либы wx для открытия pdf, html, flash-файлов. и есть просто ActiveXWindow, т.е. возможно использовать файлы других приложений, только как это сделать? может кому-то встречались примеры?
Офлайн
proDivaТак юниксоиды называют Виндовс. Забылся.
Что значит “под оффтопиком”?
Офлайн
balu
Спасибо за разъяснение, теперь буду знать))
Андрей Светлов
Вышла ошибка:
“Traceback (most recent call last):
File ”C:\Python24\proba.py“, line 63, in -toplevel-
frame = TestFrame()
File ”C:\Python24\proba.py“, line 55, in __init__
self.tp = TestPanel(self, sys.stdout)
File ”C:\Python24\proba.py“, line 25, in __init__
ActiveXWrapper = MakeActiveXClass(excelModule.Application)
AttributeError: ‘NoneType’ object has no attribute ‘Application’”
Я проверила, в реестре в CLSID такой код есть, но почему-то он его не видит.
Офлайн