Newsgroup: it.comp.lang.visual-basic
Titolo: Stampare form

Un paio di domande sulla stampa
Ho quasi terminato il mio progettino.
Mi manca , adesso, la stampa delle fatture di fine mese
Fatture, quelle, che possono essere lunghe anche tre pagine
HO operato cosi'
Una PictureBox (Chiamiamola PicA) grande sfondo bianco
Dentro PicA un altra PictureBox ( chiamiamola PicB ) sfondo bianco
Dentro PicB gli oggetti (Labels e Campi testo) che vengono generati a
runtime per formare la Fattura.
Adesso, capirete bene , che la fattura lunghissima, (contenuta in PicB ) va
ben oltre il limite di PicA.
Ho risolto con delle key press dei tasti freccia.
Frecciasu = picB.top + 100
frecciaGIU = PicB.top - 100
Insomma, il risultato è molto gradevole e ordinato
con la fattura che scorre all'interno di PicA , utilizzando i tasti freccia.
Adesso la domanda , Geniale, è :
Come faccio a stampare tutto il contenuto di PicB ( anche tutta la porzione
fuori schermo ) completo di Labels , texts, e testi relativi ?
Mi serve una dritta, anche solo un indicazine, poi me la sbroglio da
me....non c'e' nulla su Google :(
[2]
Altra cosa...sono io che sbaglio , oppure me.printform NON stampa  le label,
le picture e tutti gli oggetti grafici che ci sono nel form ?
Dalle mie prove si limita a stampare solo i testi delle label ....
:(
Disperato .... :(
Akuma.

Dalle mie prove si limita a stampare solo i testi delle label ....
Boh, PrintForm e' una delle funzioni piu' inutili di vb :-(
-- 
ciao, hal

 ma applicato a Printer.
uhm.... a me, ma Paperino pare sia d'accordo, l'assoluta corrispondenza tra
printer e picture box non torna, in particolare sono diverse le dimensioni dei
font, comportando uno "sfalsamento" delle pagine tra anteprima e stampa.
Tu hai mai notato nulla di strano, al riguardo?
--
Salutoni
Sergio

Tu hai mai notato nulla di strano, al riguardo?
Probabilmente succede se si usano scale diverse.
-- 
ciao, hal

 Probabilmente succede se si usano scale diverse.
No, stessa scala.
Avevo anche fatto una piccola form di test, e il papero l'aveva provata.
la puoi trovare qui:
http://makeashorterlink.com/?C10F12124
(sě, lo so che odi lo shorterlink, ma questa volta č per uso limitato)
se tu fossi cosě gentile da dargli una occhiata....
Intendo dire: le differenze nelle misure dei form ci sono, vorrei capire se č
per un qualche errore "logico" nel codice....
thanks in advance
--
Salutoni
Sergio

 No, stessa scala.
Non ho guardato il codice, ma la rappresentazione a video è molto meno
definita di quella su stampa (non credo che dipenda dall'effettiva
definizione/settaggio del video, ma dalle "misurazioni interne" della
Picturebox per la rappresentazione grafica, quindi qualche sbavatura (a
parità di scalemode, scale<width eight>, etc. fra Printer e PictureBox) ci
può stare. Inoltre ho notato che alcuni font che sono non proporzionali in
stampa, lo sono (sob!) a video, e viceversa (sob!)

 :(
Ciao,
il printform ha una limitazione piuttosto grossa, 
stampa con dimensioni massime pari a quelle dello schermo,
quindi se tu metti i dati della fattura su un form e poi lo ingrandisci
per stamparlo
ti verrà fuori solo la parte che rientra nelle impostazioni di
risoluzione.
La soluzione della picture in picture è una di quelle abbordabili,
però ha qualche difetto, infatti la qualità dei caratteri in stampa
(almeno quella delle label) è un po bassa.
Io ho trovato un esempio con questo metodo ma non ricordo da dove l'ho
scaricato.
Posso postare il codice domani.
altre soluzioni sono quelle di usare l'oggetto printer ma la quantità di
codice da scrivere è sicuramente superiore.
Stefano
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 
[CUT]
C'è qualche esempio da scaricare su 
www.visual-basic.it


per un qualche errore "logico" nel codice....
Be', li' si limita a leggere le dimensioni dei due dispositivi, che
sono ovviamente diverse ;-)
-- 
ciao, hal

 sono ovviamente diverse ;-)
Perdona se insisto, capatosta sono e rimango :-)
Se io faccio
Picturebox.print "testo"
o
Printer.print "testo"
a parità di carattere, scala e quant'altro utilizzato, il currenty dei due
dispositivi si incrementa di una quantità diversa, e questa diversità non è
quantificabile a priori, perchè è diversa in funzione del font e della
dimensione del font stesso.
Questo fatto fa in modo che, dando alla picture le stesse dimensioni del foglio
presente nella stampante, le righe contenute non siano le stesse.
Io ho risolto andando a vedere quale è l'altezza del font sulla stampante, e
utilizzo questo valore per incrementare il currenty della picture dopo ogni
riga.
il tutto diventa una cosa simile a:
Altezza = printer.textHeight "StringaDiProva"
Picturebox.print "Testo";
picturebox.currentx = margine
picturebox.currenty = picturebox.currenty + altezza
a questo punto la precisione è buona, le pagine di anteprima corrispondono a
quelle di stampa, ma la quantità di codice è mostruosa (anche perchè il currenty
viene modificato anche se non si va a capo, ma questo è un altro discorso).
Voi avete trovato qualche altra strada?
--
Salutoni
Sergio

 fuori schermo ) completo di Labels , texts, e testi relativi ?
Prova, se gia' non l' hai fatto, a dare un' occhiata
alle routines del progetto StampaFCPB che ho messo sul
mio sito di DownLoads a: 
http://www.flanguasco.org
Puoi stampare Forms e PictureBoxes (compresi i controlli
in essi contenuti) con dimensioni e margini a piacere.
Ciao ed a risentirci.
Franco

viene modificato anche se non si va a capo, ma questo è un altro discorso).
No pain no gain, e poi basta farsi una dll e ci si dimentica persino
di come funzioni ;-)
-- 
ciao, hal

 di come funzioni ;-)
Molto vero, solo che qualche volta uno si pone la domanda: ma è possibile che
bisogna fare tutto sto casino, oppure sono l'unico pirla che non conosce il
metodo giusto?
Se è proprio necessario scrivere il codice non mi tiro certo indietro :-)
--
Salutoni
Sergio

metodo giusto?
Se pensi il casino che fa Crystal Report, tutto questo e' una
passeggiata ;-)
-- 
ciao, hal