Bilder drucken mit PIL.ImageWin

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Hallo,

ich bin mal wieder am Thema drucken ;-)
bin sehr weit ich kann nun auch in anderen Papiergrößen drucken
die Schlüsseleinstellung ist.

Code: Alles auswählen

      
printer = "PRINTER Name"  
papersize = "A3"
alignment = "Querformat"
# http://msdn.microsoft.com/library/default.asp?url=/library/en-us/intl/nls_Paper_Sizes.asp
papersizes = {"A3" : 8, "A4" : 9, "A2" : 66}
alignments = {"Hochformat" : 1, "Querformat" : 2}

hprinter = win32print.OpenPrinter(printer)
# load default settings
devmode = win32print.GetPrinter(hprinter, 8)["pDevMode"]
# change paper size and orientation
devmode.PaperSize = papersizes[papersize]
devmode.Orientation = alignments[alignment]
Achtung es ist kein vollwertiges Beispiel.

So nun möchte ich aber ein Bild drucken und dazu PIL nutzen
doch PIL nimmt mein Bild nicht was habe ich bei dem Code falsch gemacht.
http://paste.pocoo.org/show/1489/

Error:
KeyError: 'Y:\\Python\\projects\\sfp_rewrite\\tdummy\\001-A4.bmp'

Ich verstehe das so das dann PIL jedes von ihm unterstütztes Format in BMP umwandelt ?!?
Lösung von mir wäre das ich Gerolds SimpleWinPrint nutze. Aber das nimmt die Datein nur in BMP an, d.h ich müsste sie immer erst umwandeln, und ich müsste SimpleWinPrint um die Funktionalität des Quer / Hoch und A4 - A2 erweitern.

PS: Ich finde die DM_Papersize Ids nicht für A1 und A0?
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Du musst die Datei erst in PIL "öffnen":

Code: Alles auswählen

bmp = Image.open(file)
dib = ImageWin.Dib(bmp)
MfG
HWK
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Danke ;-)

man sollte die Hoffnung nie Aufgeben.
Danke das du die ganzen alten post noch nachgelsenen hast ;-)
Antworten