Tkinter und drucken

Fragen zu Tkinter.
Antworten
Benutzeravatar
Mawilo
User
Beiträge: 452
Registriert: Sonntag 22. Februar 2004, 10:58
Wohnort: Sachsen
Kontaktdaten:

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
Flano
User
Beiträge: 43
Registriert: Sonntag 5. September 2004, 14:13

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
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

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
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

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
Benutzeravatar
Mawilo
User
Beiträge: 452
Registriert: Sonntag 22. Februar 2004, 10:58
Wohnort: Sachsen
Kontaktdaten:

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
Antworten