Vi posto questo codice d'esempio:
Con questo codice io mi aspetterei di avere stampate tre pagine rispettivamente con le scritte:codice:' Printers(2) è la mia stampante predefinita Set Printer = Printers(2) Printer.ScaleMode = vbCentimeters For i = 1 To 3 Printer.ScaleLeft = -2 - i ' Margine sinistro Printer.ScaleTop = -4 - i ' Margine superiore Printer.Print "" Printer.Print "ScaleLeft: " & CStr(-2 - i) Printer.Print "ScaleTop: " & CStr(-4 - i) Printer.NewPage Next i Printer.EndDoc
[Pag 1]
ScaleLeft: -3
ScaleTop: -5
[Pag 2]
ScaleLeft: -4
ScaleTop: -6
[Pag 3]
ScaleLeft: -5
ScaleTop: -7
Con i margini impostati nelle rispettive modalità.
Mi accorgo invece che come margine superiore (ScaleTop) mi viene mantenuto quello impostato per la pagina precedente!!!
In pratica nella prima pagina che stampo non c'è nessun margine superiore, nella seconda ci sono 5cm e nella terza 6cm.
Se poi lancio la stampa di nuovo, la prima pagina ha 7cm di margine superiore (l'ultimo margine impostato nella 3 pagina della stampa precedente), la seconda pagina ha sempre 5cm e la terza sempre 6cm e finché non chiudo Visual Basic il giro continuerà così!
Il margine sinistro è invece sempre corretto!
Sono io che sbaglio qualcosa?
![]()


Rispondi quotando
