Найти - Пользователи
Полная версия: Как распечатать документ
Начало » Python для экспертов » Как распечатать документ
1 2 3 4
proDiva
# -*- 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()
Такой пример пойдет?
proDiva
По-моему не совсем то))) на первый пост отвечала)))
Dimka665
pythonwin
Dimka665
ReportLab позволяет создавать документы из каких-либо шаблонов?
да - есть формат RML и из него можно создавать pdf документы
а можно увидеть примеры использования. как создаются шаблоны?

вообще, хочу чтоб было так))). из документов msword, openoffice я хочу легко создать {{какие-либо}} шаблоны. и потом на питоне при помощи {{какой-либо}} библиотеке создать {{какой либо}} документ(PDF, PostStript или еще что-либо легко печатающееся). такое возможно?)
pythonwin
Dimka665
такое возможно?)
возможно с оговорками:
- создал документ dot в OO и сохранил как html, потом переделал его в шаблон например для cheetah (он более либеральный чем kid) и потом используя unoconv переконвертируешь в pdf
Dimka665
на счет unoconv. на сколько я понял, он требует установленного опенофиса. не годится.
а в reportlabе переконвертировать только pisoй получится?
pythonwin
Dimka665
а в reportlabе переконвертировать только pisoй получится?
reportlab может сам создавать документы pdf, правда использую API ReportLab а не html.
pisa использует reportlab для создания документов, но программист работает при этом с html. а не с объектами
http://www.htmltopdf.org/
Dimka665
меня интересовало именно преобразование из html.
спасибо за помощь.
sbar
Оказывается в венде есть стандартная команда print. Через нее postscript печатать можно.
igor.kaist
Не со всеми принтерами… У меня epson например струйник пост скрипт печатает.. Печатает в прямом смысле слова.. На странице.. Прямым текстом :)
а вот лазерный кэнон, выдает то что нужно.
Можно и не через print, чуть выше я описывал варианты которые использовал в винде, с постскриптом в том числе
clopomor
pyExcelerator мертвий, а ось xlwt живий (http://groups.google.com.ua/group/python-excel?lnk=srg)
іще як варіант - використання ОпенОфіса в серверному режимі http://www.frutik.te.ua/node/16
або ж модулів для екпорту в його формати, а потім друк через pyuno
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB