Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Oggetto Printer e formati personalizzati - come stamparli?

Salve a tutti
Devo eseguire una semplice stampa ripetitiva e vorrei usare l'oggetto
printer.
Ho una ricevute di dimensioni 75 mm X 210 mm sulla quale devo stampare un
numero.
Le ricevute sono su modulo continuo, quindi una pagina di dimensioni 300 mm
X 210 mm ne contiene quattro.
Ho preparato questo programmino da inserire nell'evento click di un bottone:
dim num as integer
num=inputbox("Inserisci il numero di ricevute da stampare")
printer.scalemode=6
printer.height=75
printer.width=210
printer.currentx=50
printer.currenty=50
for i=1 to num
    printer.print "Codice " & num
    printer.enddoc
next i
Su fogli singoli funzione ma in modulo continuo no. Dove sbaglio?
Ciao
Fabio

 ha scritto

mi sembra che enddoc termini la stampa (eject), mentre prima per 3 volte
devi solo scendere di linea quanto ti serve.
fra l'altro, non che qui conti molto, l'a4 non e' 297x210 ?
ciao


Come dicevo è un formato personalizzato
Ciao
Fabio

 devi solo scendere di linea quanto ti serve.
L'altra soluzione cui ho pensato è questa:
    Dim numerocopie As Integer
    numerocopie = InputBox("Inserisci il numero di ricevute da stampare")
        Printer.ScaleMode = vbMillimeters
        Printer.Height = 300
        Printer.Width = 210
    For i = 1 To numerocopie
        If i = 1 Then
            Printer.CurrentY = 50
            Printer.CurrentX = 50
            Printer.Print "Codice"
'            Printer.NewPage
        Else
            Printer.CurrentY = Printer.CurrentY + 75
            Printer.CurrentX = 50
            Printer.Print "Codice"
        End If
    Next i
    Printer.EndDoc
Ciao
Fabio

     Printer.EndDoc
non ho provato
ciao
http://www.sundaysw.com

 -->             Printer.CurrentY = iif(i=1, cr, cr+75)
scusa, l'ora..
ovviamente devi anche incrementare cr
ciao


Ciao
Fabio

Tuttavia stavo pensando, con il metodo printer ho la possibilità, una volta
impostata la stampante, di vedere tramite codice i formati disponibili?
Ed in ogni caso, è pensabile creare direttamente nelle proprietà della
stampante un formato personalizzato da usare poi per la stampa con il metodo
printer?
Ciao
Fabio


mi sembra che vb preveda un printer.papersize = 256 user-defined.
ciao


Ciao
Fabio

 Come di Fa?
fabio, la guida...
Printer.PaperSize

 ha scritto nel messaggio
news:b4phcg$22o340$1...@ID-51318.news.dfncis.de...

Gia vista, ma non è chiara oppure non ho capito.
Immagino sia:
     printer.papersize=256
poi come faccio a passargli il mio formato personalizzato?
Ciao
Fabio

 poi come faccio a passargli il mio formato personalizzato?
non ci ho mai provato. ma mi sembra lo stessi gia' facendo quando le dici
HxW del foglio. cmq:
"Restituisce o imposta un valore che indica le dimensioni del foglio per la
stampante corrente. Non disponibile in fase di progettazione"
magari prova a dare un'occhiata su google con quelle parole chiave.
ciao


C'ho passato almeno due ore della notte. Cmq grazie.
Ciao
Fabio

Devi impostare Papersize = 256, lo scalemode all'unità
di misura che vuoi e poi le proprietà Height e Width di printer.
Pero' mi sono accorto che ci sono differenze tra vari sistemi
operativi e driver di stampanti.
Per questo per ovviare al problema dai miei clienti creo un
formato personalizzato di carta.
Ciao e spero di essere stato utile
Fer di Nanto

 ha scritto nel messaggio
news:JSZba.71712$zo2.1...@news2.tin.it...

Anch'io effettivamente penso che sia la soluzione migliore.
Ti ringrazio
Ciao
Fabio