Lo fai (in VB) con l'oggetto Printer. L'oggetto Printer ha una serie di proprietà, che consentono impostare l'orientamento, la dimensione della carta ecc, prima della stampa. Le impostazioni devi ricavare da costanti, file o database del tuo applicativo.
Per impostare un formato non standard, ad esempio le schede del lotto, devi scegliere il formato più grande della stampante supportato, normalmente LETTER (formato americano). Poi stampi sopra come niente fosse (usando i metodi di Printer, ad esempio
Printer.Print "abc";
e quando hai finito, cioè raggiunto il bordo inferiore del tuo formato, invii il comando
Printer.EndDoc
Così la stampante si avvia effettivamente e stampa la pagina, lasciando tutto bianco dove non hai stampato. Questo è la strada più semplice.
L'altra via è che crei un documento Word, Crystal Reports, Excel, o altro, che ha impostato il formato pagina come desideri. Con gli oggetti OLE puoi riempire questi documenti, e poi ci pensa l'oggetto OLE a dire come si deve comportare la stampante.
La via più difficile è usare le API dello spooler e della stampa, ma non lascia desideri aperti. Sul web ci sono diversi esempi (eccellenti) come fare, basta ricercare per i termini "Visual Basic Source Preview Print" su Google.
Giovanni
---
http://www.y2ksw.com/vbulletin