Drucken ohne Dialog

Plattformunabhängige GUIs mit wxWidgets.
Antworten
Jan-Peer
User
Beiträge: 166
Registriert: Dienstag 2. Oktober 2007, 10:55

Dienstag 2. Oktober 2007, 11:30

Hallo zusammen!

Ich schreibe gerade an einer Anwendung und versuche, aus dieser heraus HTML(eigentlich sogar odt) zu drucken. Der folgende Code funktioniert so weit, so lange ich in der Print-Funktion den letzten Parameter auf TRUE lasse.
Mich stört der Dialog aber ein wenig, so daß ich ihn gerne unterdrücken möchte. Nur springt der Drucker dann leider nicht an, ich erhalte aber auch keine Fehlermeldung. Hat hier noch jemand eine Idee, woran es liegen könnte?

Danke schon mal

Jan-Peer

Code: Alles auswählen

import wx

from wx.html import HtmlPrintout



header = "<b>Die Kopfzeile</b>"



content = """<h1>Die Überschrift</h1>

<p>Irgendwelcher Inhalt in HTML-Codierung</p>

<p>Dieser Inhalt soll aus einer ODT-Datei generiert werden, aber so

weit bin ich noch nicht.</p>"""



app = wx.App()



hp = HtmlPrintout()

hp.SetHeader(header)

hp.SetHtmlText(content)



pdd = wx.PrintDialogData()

pdd.SetNoCopies(1)

pd = pdd.GetPrintData()

pd.SetPrinterName("Canon")



print pdd.IsOk()



p = wx.Printer(pdd)

p.Print(None, hp, False)
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Dienstag 2. Oktober 2007, 12:10

Hallo Jan-Peer!

Willkommen im Python-Forum!

Ich glaube, dass das schon einmal in der Mailingliste gefragt wurde. Vielleicht findest du dort einen Hinweis.

http://news.gmane.org/gmane.comp.python.wxpython

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Jan-Peer
User
Beiträge: 166
Registriert: Dienstag 2. Oktober 2007, 10:55

Dienstag 2. Oktober 2007, 13:19

Ich habe mich dort durch die Code-Schnipsel gewühlt und bin nach einer Weile tatsächlich fündig geworden:
Beim PrintDialogData-Objekt fehlte noch die Einstellung SetAllPages

Nach Einfügen von

Code: Alles auswählen

ppd.SetAllPages(True)
funktionierte dann alles.

Vielen Dank für die schnelle Hilfe

Jan-Peer
Antworten