Drucken eines Bitmaps unter Windows

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
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hi!

Ich stehe an. Habe vieles versucht, bin aber kläglich gescheitert. :oops:

Wie muss ich vorgehen, wenn ich mit pywin32 unter Windows eine Bitmap-Datei öffnen möchte und diese auf dem Standarddrucker drucken möchte? Ich möchte nicht PIL oder ein anderes Programm dafür verwenden.
Am liebsten wäre mir eine Lösung mit BitBlt.

Eine Bitmap-Datei kann ich bereits laden. Ich weiß nur noch nicht, wie ich diese an BitBlt übergeben kann.

Code: Alles auswählen

import win32gui
import win32con
import win32ui
import win32print
import time

hdc = win32ui.CreateDC()
hdc.CreatePrinterDC(win32print.GetDefaultPrinter())
hdc.SetMapMode(win32con.MM_TWIPS)

docname = "demo %s" % time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
hdc.StartDoc(docname)
hdc.StartPage ()

# Bild laden
img = win32gui.LoadImage(
   0, 
   r"H:\Bilder und Videos\MOND.BMP", 
   win32con.IMAGE_BITMAP, 
   0, 
   0, 
   win32con.LR_LOADFROMFILE
)

hdc.BitBlt(
   (0, 0),
   (2000, -2000),
   img,
   (0, 0),
   win32con.SRCCOPY
)

hdc.EndPage ()
htd.EndDoc()
Vielleicht kann mir jemand helfen.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

gerold hat geschrieben: Ich weiß nur noch nicht, wie ich diese an BitBlt übergeben kann.
Hi!

8) Ich habe die Lösung gefunden. Sobald ich meinen Kopf wieder frei habe, werde ich hier die Lösung posten.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Antworten