Newsgroup: it.comp.lang.visual-basic
Titolo: VB6 creare margine sinistro costante con printer.print

vb6-sp6
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

 ha scritto nel messaggio 
news:4c25dc8b$0$18993$4faf...@reader5.news.tin.it...

Eppure con l'utilizzo di CurrentX, CurrentY dovresti risolvere
magari imposta la proprietà ScaleMode = 6 (in mm) e ricorda
di ripetere i comandi CurrentX, CurrentY per ogni riga di stampa.
Un'altra cosa da sapere è che il punto 0,0 sul foglio di carta è diverso
da stampante a stampante, percui dovresti fare dei test per capire da
dove parte la stampa realmente.
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 

Ti ringrazio vivamente, ma il problema rimane.
Mi permetto trascrivere le istruzioni iniziali della stampa.
Sbaglio qualcosa, ma cosa ????
Grazie
giap
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. 

 ha scritto nel messaggio 
news:4c28cd0b$0$31370$4faf...@reader1.news.tin.it...

Bene, forse non mi sono spiegato bene
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

Ti ringrazio, sei stato chiarissimo, comunque se hai letto gli altri 
messaggi, hai compreso quale era in definitiva il problema.
Comunque risolvibile facilmente con un tab(x).
Grazie ancora e cordiali saluti
giap