Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 26, 2008 10:59:30

proDiva
От:
Зарегистрирован: 2007-02-15
Сообщения: 244
Репутация: +  0  -
Профиль   Отправить e-mail  

Как распечатать документ

# -*- 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()
Такой пример пойдет?



Офлайн

#2 Сен. 26, 2008 15:18:25

proDiva
От:
Зарегистрирован: 2007-02-15
Сообщения: 244
Репутация: +  0  -
Профиль   Отправить e-mail  

Как распечатать документ

По-моему не совсем то))) на первый пост отвечала)))



Офлайн

#3 Окт. 1, 2008 09:34:12

Dimka665
От:
Зарегистрирован: 2008-09-19
Сообщения: 177
Репутация: +  0  -
Профиль   Отправить e-mail  

Как распечатать документ

pythonwin
Dimka665
ReportLab позволяет создавать документы из каких-либо шаблонов?
да - есть формат RML и из него можно создавать pdf документы
а можно увидеть примеры использования. как создаются шаблоны?

вообще, хочу чтоб было так))). из документов msword, openoffice я хочу легко создать {{какие-либо}} шаблоны. и потом на питоне при помощи {{какой-либо}} библиотеке создать {{какой либо}} документ(PDF, PostStript или еще что-либо легко печатающееся). такое возможно?)



Офлайн

#4 Окт. 1, 2008 11:00:44

pythonwin
От:
Зарегистрирован: 2006-07-18
Сообщения: 1294
Репутация: +  0  -
Профиль   Отправить e-mail  

Как распечатать документ

Dimka665
такое возможно?)
возможно с оговорками:
- создал документ dot в OO и сохранил как html, потом переделал его в шаблон например для cheetah (он более либеральный чем kid) и потом используя unoconv переконвертируешь в pdf



Офлайн

#5 Окт. 2, 2008 12:19:02

Dimka665
От:
Зарегистрирован: 2008-09-19
Сообщения: 177
Репутация: +  0  -
Профиль   Отправить e-mail  

Как распечатать документ

на счет unoconv. на сколько я понял, он требует установленного опенофиса. не годится.
а в reportlabе переконвертировать только pisoй получится?



Офлайн

#6 Окт. 3, 2008 06:18:28

pythonwin
От:
Зарегистрирован: 2006-07-18
Сообщения: 1294
Репутация: +  0  -
Профиль   Отправить e-mail  

Как распечатать документ

Dimka665
а в reportlabе переконвертировать только pisoй получится?
reportlab может сам создавать документы pdf, правда использую API ReportLab а не html.
pisa использует reportlab для создания документов, но программист работает при этом с html. а не с объектами
http://www.htmltopdf.org/



Офлайн

#7 Окт. 3, 2008 09:09:34

Dimka665
От:
Зарегистрирован: 2008-09-19
Сообщения: 177
Репутация: +  0  -
Профиль   Отправить e-mail  

Как распечатать документ

меня интересовало именно преобразование из html.
спасибо за помощь.



Офлайн

#8 Окт. 20, 2008 00:18:26

sbar
От:
Зарегистрирован: 2007-08-15
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Как распечатать документ

Оказывается в венде есть стандартная команда print. Через нее postscript печатать можно.



Офлайн

#9 Окт. 20, 2008 07:24:54

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Как распечатать документ

Не со всеми принтерами… У меня epson например струйник пост скрипт печатает.. Печатает в прямом смысле слова.. На странице.. Прямым текстом :)
а вот лазерный кэнон, выдает то что нужно.
Можно и не через print, чуть выше я описывал варианты которые использовал в винде, с постскриптом в том числе



Офлайн

#10 Окт. 20, 2008 11:36:39

clopomor
От:
Зарегистрирован: 2007-06-12
Сообщения: 154
Репутация: +  0  -
Профиль   Отправить e-mail  

Как распечатать документ

pyExcelerator мертвий, а ось xlwt живий (http://groups.google.com.ua/group/python-excel?lnk=srg)
іще як варіант - використання ОпенОфіса в серверному режимі http://www.frutik.te.ua/node/16
або ж модулів для екпорту в його формати, а потім друк через pyuno



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version