Xion hat folgendes geschrieben : |
Hast du bedacht dass der Drucker ne höhere Auflösung hat? Machs mal so: Breite und Höhe des Bitmaps mal 3, entsprechend groß das Etikett ins Bitmap zeichnen und dann StretchDraw. Auf dem Drucker muss natürlich die Größe des Rects gleich bleiben, also nicht mal 3 |
Es gibt auch Drucker mit krummen Auflösungen, z. B. 600 * 300 dpi. Besser ist es, die Auflösungen (LogPixelsX bzw. LogPixelsY) mit GetDeviceCaps vorher zu ermitteln.
Ich habe auch noch dunkel in Erinnerung (lang ist es her ...), daß man statt Stretchdraw besser StretchDIBits verwenden sollte. Beispiel siehe hier:
www.swissdelphicente.../showcode.php?id=744
Eine andere Alternative wäre, direkt auf Printer.Canvas zu zeichnen und zu schreiben. Gerade beim Erstellen von Ertiketten bietet es sich doch an, bei Printer.Canvas eine Auflösung von 1/10 mm einzustellen. Man kann auch den Koordinatenursprung nach oben links in die Ecke verlegen.
Falls gewünscht, kann ich den SourceCode von meinem Etikettendruckprogramm per Email zuschicken (etwa 500 Zeilen).