Drucken

  

 
 

 
 Papierfächer

EnumPaperBins
Papierfächer auflisten und einstellen 
 

 
 

 phys. Druckränder

Abmessungen der nicht bedruckbaren Randbereiche ermitteln
Mit den Anweisungen Printer.CurrentX = 0 und Printer.CurrentY = 0 kann die aktuelle Druckposition nicht unbedingt genau an die linke obere Ecke des Papiers gesetzt werden. Bei den meisten Druckern mit Einzelblattverarbeitung können bestimmte Mindestränder nicht bedruckt werden. Das Codebeispiel ermittelt mit Hilfe der API-Funktion GetDeviceCaps die nicht bedruckbaren Ränder.
 

 
 

 Printer Dialog

Standarddialog für Druckerauswahl und Druckereinstellungen
ohne CommonDialog.ocx.
 

 
       
 

 

 

 
   Papierfächer


EnumPaperBins

Auflisten aller für einen bestimmten Drucker verfügbaren Papierfächer
und ausgewähltes Papierfach einstellen.

Die von Visual-Basic vordefinierten Konstanten für die Einstellung der PaperBin - Eigenschaft des Printerobjektes sind für  für die meisten Druckertypen nicht brauchbar. Fast alle Druckerhersteller benutzen hierfür eigene, nicht in VB vordefinierte Werte.
Das hier vorgestellte Programm ermittelt mit Hilfe der API-Funktion GetDeviceCaps die vom Druckertreiber angebotenen Werte für PaperBin und benutzt diese zur Einstellung von Printer.PaperBin.

 
    Download EnumPaperBins-Projekt (enumpb.zip 5 kB)   
           
         
  Printer Offset

 
Printer Offset
Ermitteln der physikalischen Druckerränder
(nicht bedruckbare Randbereiche)

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

 
  Download (proffset.zip 3kB)
 
 
         
         
   Printer Dialog

 
 
Printer Dialog

Dialoge für Druckerauswahl und Druckereinstellungen ohne CommonDialog.ocx.
Die Dialoge sowie eine Funktion zur Rückgabe des Standarddruckers werden mit Hilfe von API-Aufrufen realisiert.

Ein Beispielprogramm zeigt die Anwendung des Klassenmoduls clsPrintDialog.

Download printdlg.zip (12kB)