Wie kann man S/W-Drucker von Farbdruckern unterscheiden!
-
Hallo,
ich hab folgendes Problem.
Wie Kann man zweifelsfrei zwischen einen S/W Drucker und einem Farbdrucker unterscheiden.
Ich hab beim Drucken nur das Druck DC zu Verfügung.Von diesem Druck DC frage ich mit GetDeviceCaps(hDCPrint, BITSPIXEL) die Farbtiefe ab.
So, ich bin jetzt davon ausgegangen, daß wenn ich den Wert 1 erhalte, ich es mit einem S/W Drucker zu tun habe.Leider ist das wohl nicht immer der Fall, wie ich jetzt aus Fehlermeldungen mit Farbdruckern erfahren habe.
Das Dilemma ist nämlich, daß bei einem S/W Drucker die Druckvorschau auch S/W sein soll. Also muß ich irgendwie herausfinden, ob es sich um einen S/W Drucker handelt und in diesen Fall die Farben in Grauwerte umrechnen.
Das erfrage ich wie oben beschrieben, nur, leider leider erhält man auch bei manchen Farbdruckern den Wert 1 und dann erhält man einen S/W Ausdruck.
Die Abfrage mit GetDeviceCaps(hDCPrint, NUMCOLORS) ist auch nicht gearde das wahre vom Ei, weil man hier bei S/W Druckern manchmal den Wert 255 erhält und bei Farbdruckern z.B. 8.
Wer kann da helfen?
Hat jemand schon mal mit dem gleichen Problem zu kämpfen gehabt?
-
ab Windows 2000 könntest du es mit DeviceCapabilities mit DC_COLORDEVICE versuchen
Das Problem ist eben, dass du aus Bittiefe oder Anzahl der Farben nicht schließen kannst, ob es nur ein SW-Drucker ist - 8bit bzw. 256 Farben könnte ja entweder eine Graustufen- oder eine Farbpallette sein