Hi Carsten,
Das habe ich schon so
Die DrawWidth-Eigenschaft „auflösungsunabhängig“ zu berechnen,
scheint mit folgender Formel zu funktionieren:
Printer.DrawWidth = Printer.PrintQuality / 100 *
(Printer.TwipsPerPixelY * Printer.PrintQuality) /
(Printer.TwipsPerPixelX * Printer.PrintQuality)
so aufnahmefähig bin ich gerade nicht. Den Code versuche ich mal nicht nachzuvollziehen. Die verwendeten Parameter sind plausibel.
Ob das jetzt für alle Drucker funktioniert, kann ich natürlich
nicht sagen, insbesondere deshalb, weil mir nicht bekannt ist,
ob es Drucker gibt, bei denen TwipsPerPixelX kleiner ist als
TwipsPerPixelY.
Ich kenne keinen. Das muss aber nichts bedeuten. Bei Scannern weiß ich, daß es so etwas gibt.
Jedenfalls habe das mit allen mir zur Verfügung stehenden
Druckern und jeweils allen möglichen Einstellungen für die
Auflösung getestet und Linien werden bei allen Ausdrucken auf
Papier gleich dick dargestellt.
Ja verstanden.
Aber das eigentliche Problem ist ja noch PrintQuality = 0.
In der Hilfe habe ich gefunden, daß ‚.DrawWidth‘ in Pixel angegebne wird. Das bedeutet dann ja wohl, daß Du da die Strichbreite nicht in Millimeter angeben kannst. Ich hätte gesagt, da ist das Problem. Ich hatte fälschlicher Weise angenommen, daß Du die Strichstärke ebenfalls in Millimeter angeben kannst, daher mein Unverständnis.
Zu Printquality = 0
Klar kannst Du damit nicht rechnen.
Ich erzähl mal eine Idee, weil ich gerade nicht testen kann. Mein Drucker ist defekt und ich bin krank, komme also auch nicht in die Firma …
Wäre es eine Möglichkeit, die druckqualität in DPI in den Druckertreiber zu schreiben und anschließend auszulesen, was da steht, falls per default eine Null kommt?
Wenn ich die Hilfe richtig verstanden habe, lässt sich kein Wert eintragen, der nicht unterstützt wird.
Ich habe „Fritz“ jetzt 'mal aktualisiert und mir wird auch die
PrintQuality zurückgegeben. Der Unterschied ALT / NEU: 196 dpi
/ 200 dpi.
Leider habe ich bei der alten Version nicht darauf geachtet,
ob TwipsPerPixelX zurückgegeben wurde oder nicht. Schätze, ich
muß die nochmal installieren, um das zu testen.
Mir geht dabei durch den Kopf, was ich beim Drucken von Barcodeetiketten getan habe. Alle Linien sind eigentlich gefüllte Boxen in Millimeterangabe. So wird ein 0,3 Millimeter breiter Strich eine 0,3 Millimeter breite Box.
Gruß Rainer