Hallo,
diese Frage hat war schon lange nicht mehr im Forum. So wie ich das sehe gibt es die Möglichkeit mit wxPython zu drucken.
Gerold hat ein Skript zum Drucken über die WindowsApi geschrieben. (@Gerold: Warum eigenes Skript und nicht wxPython?)
Was ist nach aktuellem Stand, die einfachste Methode zu drucken und trotzdem alle Möglichkeiten zu haben?
Gruß
Christian
Drucken mit Python
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi Christian!Byte hat geschrieben:@Gerold: Warum eigenes Skript und nicht wxPython?
Das ist einfach zu erklären. Damals, als ich ``simplewinprint.py`` geschrieben habe, hatte ich noch keine Ahnung von wxPython.
Heute würde ich ``simplewinprint.py`` sicherlich mit wxPython schreiben.
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Hi Gerold,
habe ich mir fast gedacht, dann bin ich mit wxpython schon auf dem richtigen Weg. Ist mir nur zu kompliziert, im Demo sind immer soviele Funktionen eingebaut, bis ich da durchsteige das wird noch ein wenig dauern.
Wahrscheinlich kaufe ich mir jetzt dann noch das Buch in Englisch. Liegen halt schon soviele Bücher im Schrank. Kurze Codebeispiele zum Thema Drucken gibt es wenig, da wird es wohl nichts helfen.
Gruß Christian
habe ich mir fast gedacht, dann bin ich mit wxpython schon auf dem richtigen Weg. Ist mir nur zu kompliziert, im Demo sind immer soviele Funktionen eingebaut, bis ich da durchsteige das wird noch ein wenig dauern.
Wahrscheinlich kaufe ich mir jetzt dann noch das Buch in Englisch. Liegen halt schon soviele Bücher im Schrank. Kurze Codebeispiele zum Thema Drucken gibt es wenig, da wird es wohl nichts helfen.
Gruß Christian
Code: Alles auswählen
from wx.html import HtmlEasyPrinting
class Printer(HtmlEasyPrinting):
def __init__(self):
HtmlEasyPrinting.__init__(self)
def Drucke(self, text, doc_name):
self.SetHeader(doc_name)
self.PrintText(text,doc_name)
def PreviewText(self, text, doc_name):
self.SetHeader(doc_name)
HtmlEasyPrinting.PreviewText(self, self.GetHtmlText(text))
Python-Version: 2.5
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi Spaten!Spaten hat geschrieben:Code: Alles auswählen
from wx.html import HtmlEasyPrinting
Super Idee!
``HtmlEasyPrinting`` kann zwar keine frei definierbaren Seitenköpfe/-füße oder Gruppierungen (Summen, Zwischensummen usw.) drucken, aber dafür ist ``HtmlEasyPrinting`` ideal, um einfache Sachen wie z.B. normale Briefe zu drucken. -- Ein wirklich guter Ersatz für ``simplewinprint.py``, da es unter Windows, Linux und Mac funktioniert.
Ich habe deinen Code aufgegriffen und ein komplettes Beispiel daraus gemacht.
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
import wx
import wx.html
wx.SetDefaultPyEncoding("iso-8859-1")
class HtmlPrinter(wx.html.HtmlEasyPrinting):
def _generate_header_and_footer(self):
self.SetHeader("<center><small>@TITLE@</small></center>")
self.SetFooter("<center><small>@PAGENUM@/@PAGESCNT@</small></center>")
def print_html(self, htmltext):
self._generate_header_and_footer()
self.PrintText(htmltext)
def preview_html(self, htmltext):
self._generate_header_and_footer()
self.PreviewText(htmltext)
def main():
# Testen
app = wx.PySimpleApp()
p = HtmlPrinter(u"Von Wellen und Tälern")
s = u"<h1>Hallo Welt</h1>"
for i in range(40):
s += u"<p>Ich bin ein <b>Absatz</b>...</p>"
p.preview_html(s)
app.MainLoop()
if __name__ == "__main__":
main()
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.