Bei den meisten Druckern für
Einzelblattverarbeitung ist es nicht möglich, mit den Anweisungen Printer.CurrentX = 0
und Printer.CurrentY = 0 die aktuelle Druckposition wirklich an den linken, oberen
Papierrand zu setzen. Nach einer solchen Positionierung befindet sich die aktuelle
Druckposition bei den meisten Druckern einige Millimeter vom linken und oberen Papierrand
entfernt.
Wird z.B. ein linker Rand von 20 mm gewünscht,
so ergäbe Printer.CurrentX = 20 (bei Einstellung Printer.ScaleMode =
vbMillimeters) eine tatsächliche Randbreite von vielleicht 26 Millimeter. Bei der Festlegung der
Druckposition durch Printer.CurrentX und Printer.CurrentY sind die für den jeweiligen
Drucker geltenden physikalischen Ränder mit zu berücksichtigen. Für einen Drucker HP4P
gilt z.B. ein phys. linker Rand mit 6,35 Millimeter.
Um einen tatsächlichen linken Rand von 20 Millimetern zu erreichen, muss die
Anweisung also Printer.CurrentX = 20 - 6.35 lauten.
Mit der API - Funktion GetDeviceCaps können bei
32-Bit Systemen (Windows95/98/ME u. Windows NT, Windows 2000 u. Windows XP) die
nicht bedruckbaren Randbereiche (phys.Druckerränder) ermittelt
werden.
Das Programmbeispiel zeigt die
Verwendung der Funktion GetDeviceCaps.
Printer-Offset
- Projekt
