Piuttosto che dover usare un tab per ogni riga di printer.print, desidererei
creare un margine costante di circa 4 cm. a sinistra di ogni riga.
Ho provato con il comando CurrentX, CurrentY, ma mentre sono riuscito a
spostare in basso l'inizio stampa, non altrettanto a spostare verso destra
l'inizio stampa di ogni riga.
Non sono bravo in materia, ovviamente, mi aiutate ?
Grazie e cordiali saluti.
giap
Per semplificare il codice potresti inserire un contatore per incrementare
automaticamente la posizione delle righe con il passo voluto.
spero di essere stato di aiuto
Saluti
JS
Printer.FontName = "COURIER NEW"
Printer.FontSize = 12
Printer.FontBold = True
Printer.ScaleMode = 6
Printer.CurrentY = 30
Printer.ScaleMode = 6
Printer.CurrentX = 60
fanno seguito le righe di stampa.
Printer.ScaleMode = 6: ' devi metterlo una sola volta all'inizio della
procedura
Printer.FontName = "COURIER NEW"
Printer.FontSize = 12
Printer.FontBold = True
'Stampa Righe
Printer.CurrentY = 30
Printer.CurrentX = 60
Printer.Print riga 1
Printer.CurrentY = 40 : 'ibcremento di Y di 10 mm
Printer.CurrentX = 60
Printer.Print riga 2
e cos� via
spero di essere stato piu chiaro
ciao
JS
La quasi totalità delle stampanti non è in grado di stampare 'al vivo',
vuoi perché il formato della carta non lo consente vuoi perché tra
meccanismi di trascinamento e sistema di spostamento della testina
questo non è possibile.
A parte ciò che potremmo impostare con i parametri eventualmente
gestibili nel driver, ogni stampante ha un suo 'offset' che di fatto
sposta l'origine delle stampe sia verso in basso che verso destra.
Sebbene in alcuni casi una precisione millimetrica non sia necessaria,
in altri (moduli prestampati, bollettini, ecc.) diventa indispensabile
posizionare in modo assolutamente preciso la stampa.
Esistono due modi per posizionare una stampa in un foglio: spostare il
foglio o spostare la stampa. Il primo modo va bene per la posizione
orizzontale ma rende impossibile il centraggio verticale, a meno che non
si utilizzi una stampante a modulo continuo. Il secondo modo è quello da
preferire.
Per posizionare in modo assoluto una stampa dobbiamo conoscere la
posizione relativa dell'origine delle stampe. Windows posiziona
l'origine della stampa (il punto 0,0) in alto a sinistra nella pagina.
Di fatto è il primo punto stampabile, quindi non è nell'angolo della
pagina ma subito dopo i margini 'hardware'. Si deve quindi sapere la
dimensione di questi margini 'hardware', dipendenti dalla marca,
modello, tecnologia della stampante utilizzata.
Una volta definito lo scostamento di base è semplice definire la
posizione della stampa in modo assoluto.
Tutto questo comporta la necessità di effettuare una 'taratura' per ogni
stampante si utilizzi.
Questa procedura di inizializzazione va realizzata dal programmatore e
consiste in due funzionalità di base:
A) mostrare dove effettivamente la stampante inizia a stampare, cioè la
posizione del punto 0,0 al di fuori dei margini hardware. Si realizza
stampando qualcosa alle coordinate 0,0.
B) consentire di inserire dei valori che consentiranno al programma di
tener conto che la stampante in uso ha determinati valori di scostamento
verso destra e verso il basso. Si predispone una maschera di immissione
con due valori e si salvano in una file INI (o quel che si vuole) il
nome della stampante ed i suoi valori di scostamento per il loro
riutilizzo.
--
-> GbC|
www.gbcweb.com
www.chiappori.com