Seite 1 von 1

Tkinter und drucken

Verfasst: Mittwoch 27. September 2006, 17:10
von Mawilo
Hallo,

es gibt zwar schon einige Threads zu diesem Thema - aber leider komme ich damit nicht weiter.
Ich erstelle mit Python eine html-Datei. Diese möchte ich dann auch direkt an den Drucker senden.
Mit meinem Code wird nur der Dateiname gedruckt und nicht die Datei an den Drucker gesendet.

Code: Alles auswählen

import win32print

f = './Daten/Auswertung.html'

tup = f, None, None
defaultPrinter=win32print.GetDefaultPrinter() 
printer = win32print.OpenPrinter(defaultPrinter) 
win32print.StartDocPrinter(printer, 1, tup) 
win32print.WritePrinter(printer,f) 
win32print.EndDocPrinter(printer) 
win32print.ClosePrinter(printer)
Für mich ergeben sich folgende Fragen:

Wie bekomme ich die Datei zum Drucker?
Gibt es evtl. noch andere Möglichkeiten, z.B. mit os.system oder so?
Kann ich aus Python über ein Dialogfenster den Drucker auswählen?


Stephan

Verfasst: Mittwoch 27. September 2006, 17:48
von Flano
Unter Windows funktioniert bei mir dies hier:

Code: Alles auswählen

import win32api

filename = 'c:\\Test.txt' #immer den kompletten Pfad angeben
open(filename) #ist Datei bereits geoeffnet dann faellt diese Zeile weg


win32api.ShellExecute (
	0,
	"print",
	filename,
	None,
	".",
	0
)
Interessantes zum "Drucken" unter Windows findest du hier:
http://tgolden.sc.sabren.com/python/win ... print.html

Ich hoffe das hilft dir weiter.
Gruß Flano

Verfasst: Mittwoch 27. September 2006, 17:53
von HWK
Du mußt erst den Inhalt der Datei einlesen:

Code: Alles auswählen

file_ = file(f, 'r')
inhalt = file_.read()
file_.close()
...
win32print.WritePrinter(printer, inhalt)
...
Das druckt aber die Datei nicht so wie sie in einem Browser angezeigt wird.
MfG
HWK

Verfasst: Mittwoch 27. September 2006, 19:35
von HWK
Evtl. solltest Du Dir mal wxPython statt Tkinter ansehen. Das Auswählen und Konfigurieren eines Druckers ist dort genau wie im übergeordneten Betriebssystem möglich. Siehe hierzu das Beispiel im wxPython-Demo unter 'Miscellaneous|PrintFramework'. Mit HtmlWindow kann man sehr einfach die HTML-Datei drucken wie sie im Browser angezeigt wird ('More Windows/Controls|HtmlWindow' im wxPython-Demo).
MfG
HWK

Verfasst: Freitag 29. September 2006, 11:52
von Mawilo
Hallo,

danke für die Antworten. Ich werde mir zum Drucken mal win32api näher anschauen. Der Link sieht vielversprechend aus.
In wxPython muss ich mich erst noch einarbeiten. Ich habe mir zwar vor einiger Zeit schon das Buch "wxPython in Action" gekauft - aber noch nichts damit gemacht. :oops: Tja, Zeit müsste man haben ...

Danke
Stephan