Tkinter und drucken

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

Tkinter und drucken

Beitragvon Mawilo » Mittwoch 27. September 2006, 17:10

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

Beitragvon Flano » Mittwoch 27. September 2006, 17:48

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

Beitragvon HWK » Mittwoch 27. September 2006, 17:53

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

Beitragvon HWK » Mittwoch 27. September 2006, 19:35

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: 446
Registriert: Sonntag 22. Februar 2004, 10:58
Wohnort: Sachsen
Kontaktdaten:

Beitragvon Mawilo » Freitag 29. September 2006, 11:52

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

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder