Newsgroup: it.comp.lang.visual-basic
Titolo: Oggetto Printer

Un mio programma di stampa ha cominciato a stampare leggermente più in alto
rispetto a prima. Inizialmente ho provato a risolvere il problema
aggiungendo alla stringa da stampare un vbcrlf all'inizio, ma mi va tutto
troppo giù.
Il testo che passo all'oggetto printer è qualcosa tipo:
testo=vbcrlf+vbcrlf+vbcrlf
testo=testo + "testodastampare"
mentre il settaggio prima della stampa è:
With Printer
    .ScaleMode = 6
    .ScaleHeight = 210
    .ScaleWidth = 297
    .Font = "Courier New"
    .Font.Size = 11
End With
Ho provato su altri computer e tutto va come prima, malgrado tutte le
proprietà dell'oggetto printer siano identiche su tutti i computer!! Ma che
può essere successo??
Ciao Andrea

 può essere successo??
Pannello di controllo->Stampanti e rimetti il formato della carta ad  A4
--
 /\/\/\/\/\/\/\/\/\/
| Una iniziativa a livello di questo NG:
| Partecipa alla stesura di progetti VB sviluppati in team, informati sul
Sito Comune
| sezione Leonardo.  Io partecipo al progetto Data Raptor, alleati con noi.
 \/\/\/\/\/\/\/\/\/\
Ciao
Ettore Maronese, il Mes
http://www.maronese.com/mes
Sito Comune di questo NG
http://www.murialdo.it/it_lang_vb

 wrote in message
qEzA6.4964$XQ2.6...@news.infostrada.it...


 wrote in message
XyzA6.4950$XQ2.6...@news.infostrada.it...

Non sò cosa può essere successo ma puoi rimediare con printer.currenty
A me cmq è successo che volevo stampare qualcosa a 3 mm esatti ma se
impostavo 3 mm mi stampava a 3 e qualcosa sicchè ho corretto i valori (es.
2.9). Quando poi sono andato ad installare il prog in un altro comp con
un'altra stampante questa stampava esattamente dove dicevo (a differenza di
quello che accadeva sulla mia stampante). In entrambi in comp tutti i valori
erano esatti e ho provato anche ad aggiornare i driver. Non ho mai risolto
la cosa e ho attribuito il problema alla mia stampante.

 wrote in message
C4FA6.1328$xC3....@news.infostrada.it...



Come ti ho già detto purtroppo non sò come aiutarti a capire ma se devi
stampare solo con il tuo computer puoi correggere impostanto
printer.currenty che ti permette molta più precisione di un vbcrlf
Ciao

Molte stampanti (spegie quelle a getto e ad aghi) hanno un parametro che
riguarda i 'margini preimpostati'... Hai controllato? Magari qualche applicativo
(o qualcuno) li ha modificati.
Quello che posso assicurarti è che, al di fuori dell caso che ho appena citato,
windows non ha nessuna possibilità di modificare i parametri (ed i margini)
della stampante.
In tutti i casi...
Partendo dal fatto che non si riesce mai a stampare fisicamente su tutta la
pagina e che l'area effettivamente disponibile cambia anche in stampanti della
stessa marca e dello stesso modello (dipende dal driver), la modifica di un
parametro come la prima coordinata disponibile (che non è mai 0, 0, a meno di
non reimpostare manualmente da programma le coordinate dell'area di stampa) può
essere dovuta solo ad una impostazione dei margini da parte dell'utente (nelle
schermate delle proprietà della stampante, come ho detto prima) oppure ad un
cambiamento del driver della stampante stessa. Drivers diversi possono avere
margini di default diversi (NDR: hardware independent? Ahecco...).
Non ci sono altre spiegazioni. Ed ho una certa esperienza di stampe e
stampanti...
In PrnPrv ho inserito una sub che stampa una specie di 'carta millimetrata',
proprio per capire come la stampante si comporta... È la PrintRefGrid ...
Per stampare su moduli prestampati è indispensabile che il programma abbia una
funzione di 'settaggio' del margine alto e del margine sinistro della stampante;
una specie di 'azzeramento' o 'taratura', se preferisci.
Questi parametri dipendono dalle stampanti e dai loro drivers, e possono essere
mooolto diversi. In alcune stampanti a getto di bassa lega l'area stampabile
verticale è di 2 cm minore di quella di una stampante laser di media qualità; e
non c'è verso di liberarla se non dicendo alla stampante che si sta utilizzando
una carta più grande.
--
GbC
http://www.chiappori.net
http://www.gbcweb.com
---
PS: ho la sensazione che di stampe e stampanti se ne mastichi davvero poco...
Prima o poi (appena ho tempo, in pratica) faccio un minicorso e lo piazzo
on-line..
ariPS...
Inizi la stampa con CRLF CRLF CRLF...
Questo non è corretto dal punto di vista della programmazione, perché la
dimensione del CRLF dipende dal carattere utilizzato...
E la dimensione del carattere non è la stessa per tutte le stampanti. Cioè...
Non è detto che un Courier New 10 punti in stampanti diverse abbia la stessa
dimensione... Sembra assurdo? Provare per credere...
Solo stampanti di alta qualità (tipicamente Postscript Adobe con caratteri
Type2) garantiscono un buon (non totale) livello di 'compatibilità
dimensionale'...
Evita i CRLF ed usa CurrentX e CurrentY, risparmi in tempo e salute...
Per saperne di più apri VB, premi F1 e cerca printer...

Grazie per l'esauriente spiegazione, ho applicato i tuoi consigli alla
lettera........
P.S. Sarò il primo a seguire il tuo corso!!
Ciao
Andrea
GbC <-...@O-O.OOO> wrote in message
StWA6.7647$xC3.1...@news.infostrada.it...
