Drucken aus einer Tkinter - Anwendung unter Windows

Fragen zu Tkinter.
Antworten
jochim
User
Beiträge: 32
Registriert: Montag 5. August 2002, 20:47
Wohnort: Dortmund

Hi @ll,

ich würde gerne aus einer Tkinter - Anwendung heraus eine Datei an den Systemdrucker( Lokaler Anschluß, kein Netz, Windows als Betriebssystem) schicken. Dazu habe ich mit einem Canvas über die Postscript Funktion eine Postscript Datei erstellt.
Meine Frage:
Wie kann ich eine Ps Datei aus Tkinter heraus an den Drucker senden ohne externe Programme wie z. B. Ghostscript zusätzlich aufrufen zu müssen,
Also z. B. mittels eines Buttons meinen Canvasinhalt an den Drucker senden?

Gruß Jochim
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

Hallo!

Meine Überlegungen (keine eigene Erfahrung mit PS unter Windows):
Die Canvas-Methode Postscript() gibt wohl, wenn kein Parameter angegeben wird, den PS-Code zurück und der müsste dann 'raw' an den Drucker geschickt werden. Wenns nur Windows sein muss, könnte das Modul win32print [1] weiterhelfen. Mal völlig ins Blaue gecodet:

import win32print
...
ps_buf = canvas.Postscript()

defaultPrinter=win32print.GetDefaultPrinter()
printer = win32print.OpenPrinter(defaultPrinter)
win32print.StartDocPrinter( ... )
win32print.WritePrinter(printer,ps_buf)
win32print.EndDocPrinter(printer)
win32print.ClosePrinter(printer)


Kannst ja mal nach einigen der Begriffe googlen, dann findest Du lauffähigere Code-Beispiele. Das Ganze funktioniert aber natürlich nur, wenn der Drucker auch PostScript versteht.

Jan

[1] Teil der "Windows Extentions". Bei ActivePython schon drin, sonst unter http://starship.python.net/crew/mhammond/ downloadbar.
jochim
User
Beiträge: 32
Registriert: Montag 5. August 2002, 20:47
Wohnort: Dortmund

Hallo Voges,

erstmal Danke, dieser Code hilft weiter, genauer gesagt, der Ausdruck auf einen PS Printer funktioniert. Was mir jetzt noch fehlt ist eine Idee oder Möglichkeit mein PS File zu konvertieren um auch jeden X beliebigen GDI Drucker unter Wibdoof ansprechen zu können. Ich bin für jede Idee dankbar.

Gruß
Jochim
Ralf

Hallo Jochim,

um Ghostscript wirst du da nicht drumrum kommen.
Allerdings kannst du mit dem Zusatz-Proggi "redmon", was es auf http://www.cs.wisc.edu/~ghost/redmon/index.htm gibt, einen virtuellen Drucker einrichten.
Der wird dann wie ein "echter" angesprochen und leitet dann das Ergebnis von ghostscript an deinen GDI-Drucker weiter.

Ralf
Antworten