Уведомления

Группа в Telegram: @pythonsu

#1 Май 4, 2010 11:12:33

magnet85
От:
Зарегистрирован: 2009-04-13
Сообщения: 91
Репутация: +  2  -
Профиль   Отправить e-mail  

wxpython печать html

Нашёл на форуме пример:


# -*- coding: utf-8 -*-

import wx
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 = wx.SplitterWindow(self, -1)
pan1 = wx.Panel(wind, -1)
pan2 = wx.Panel(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.txt_date = u"""<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Печать документа</title>
</head>
<body><br><br>
<h3>Печать</h3>
</body>
</html>"""
self.html.SetPage(self.txt_date)

self.btn1 = wx.Button(pan2, -1, u"Печать")
self.btn1.SetFont(Font)
self.btn2 = wx.Button(pan2, -1, u"Закрыть")
self.btn2.SetFont(Font)

wx.EVT_BUTTON(self, self.btn1.GetId(), self.on_print)
wx.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.PrintText(self.txt_date)
evt.Skip()

def on_close(self, evt):
self.Destroy()
evt.Skip()

class MyApp(wx.App):
def OnInit(self):
wx.InitAllImageHandlers()
frame_1 = MyFrame(None, u"Просмотр HTML")
self.SetTopWindow(frame_1)
frame_1.Show()
return True

if __name__ == "__main__":
app = MyApp()
app.MainLoop()
При печати документа вылазят кракозябры, я так понял что HtmlEasyPrinting может печатать только в latin-1 кодировке. Может кто - нибудь знает как можно распечатать русские символы?

ubuntu 10.04
wxpython 2.8.10.1

Проверил под (Windows 7, wxpython 2.8.10.1), там всё работает, почему в linux не верная кодировка?



Отредактировано (Май 4, 2010 11:20:57)

Офлайн

#2 Авг. 28, 2012 14:45:24

postcoder
Зарегистрирован: 2012-08-28
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

wxpython печать html

Можно узнать как решилась данная проблема? Пишу программу под линукс тоже вылазят всякие иероглифы, хотя в предосмотре все по-русски.

Отредактировано postcoder (Авг. 28, 2012 14:46:13)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version