Hallo idefix45.
Und @Carsten… wie macht man sowas ? wenn man es chik haben will ?
Das generelle Grundprinzip sieht eigentlich so aus:
- Festlegen der Eigenschaften (wenigstens 1x)
- Festlegen der Koordinaten
- Befehl zum Drucken mit Angabe des zu druckenden Textes
Dieses Prinzip muß für jeden zu druckenden Text einzeln festgelegt werden. Die festgelegten Eigenschaften brauchen aber nur dann erneut festgelegt werden, wenn sich etwas ändern soll, z.B. die Schriftgröße.
Hier mal ein Beispiel:
'Festlegen der Eigenschaften
Printer.PaperSize = vbPRPSA4 'Papiergröße = A4
Printer.PrintQuality = 600 'Auflösung = 600 dpi
Printer.ScaleMode = vbMillimeters 'Angabe der Koordinaten in Millimeter
Printer.Orientation = vbPRPOPortrait 'Papier hochkant
Printer.ColorMode = vbPRCMMonochrome 'Schwarzweiß
Printer.DrawWidth = 1 'Linienbreite
Printer.DrawMode = vbBlackness 'Schwarzintensität
Printer.DrawStyle = vbSolid 'Ausgefüllt
Printer.Font.Name = "Arial"
Printer.Font.Bold = False
Printer.Font.Italic = False
Printer.Font.Strikethrough = False
Printer.Font.Underline = False
Printer.Font.Size = 10
'Festlegen der Koordinaten
Printer.CurrentX = 20
Printer.CurrentY = 20
'Befehl zum Drucken mit Angabe des Textes
Printer.Print "Dies ist ein Text in Arial 10"
'Erneutes festlegen der Eigenschaften, die sich ändern
Printer.Font.Name = "Courier New"
Printer.Font.Size = 16
'Festlegen der Koordinaten
Printer.CurrentX = 50
Printer.CurrentY = 180
'Befehl zum Drucken mit Angabe des Textes
Printer.Print "Dies ist ein Text in Courier New 16"
Printer.EndDoc
Wenn Du nun das Blatt ausgedruckt hast, wirst Du feststellen, daß die Abstände zur linken oberen Ecke größer sind, wie sie sein sollten (20 und 50 mm) und auch die vertikalen Koordinaten stimmen nicht überein. Die Ursache dafür ist der Unterschied zwischen den Eigenschaften „Printer.Width“ und „Printer.ScaleWidth“, sowie „Printer.Height“ und „Printer.ScaleHeight“. Der Drucker muß ja das Papier irgendwie festhalten.
Kannst Du ja mal ausprobieren. Kann sein, daß der Text in Courier New 16 nicht ganz auf das Blatt raufpaßt, das habe ich jetzt nicht ausprobiert. Weiterhin ist es nicht möglich das Printer-Objekt in einen With-Block zu schreiben.
Viele Grüße
Carsten