Seite 1 von 1

Drucken aus einer Tkinter - Anwendung unter Windows

Verfasst: Mittwoch 19. Februar 2003, 16:03
von jochim
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

Re: Drucken aus einer Tkinter - Anwendung unter Windows

Verfasst: Mittwoch 19. Februar 2003, 18:01
von Voges
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.

Verfasst: Mittwoch 19. Februar 2003, 19:55
von jochim
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

Verfasst: Freitag 14. März 2003, 13:17
von 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