Newsgroup: it.comp.lang.visual-basic
Titolo: Come stampare da una RichTextBox in modo formattato

Ciao,
    qualcuno di voi sa come stampare una richtextbox in modo che sul foglio
rimangano tutte le tabulazioni e il formato cosě com'č nella richtextbox?
Se faccio
RichTextBox1.SelPrint Printer.hDC
il testo sul foglio risulta tutto disallineato e non rimane cosě come l'ho
impostato nella richtext... insomma un casino, eppure sembra banale da
risolvere...
qualche consiglio?
grazie,
    michele

"MBortolotti" ha scritto nel messaggio

Scusa la correzione, ma non "sembra", "E'" un casino.
Comunque una (piů o meno) soluzione la trovi sull'MSDN,
con codice di esempio.
Q146022 HOWTO: Set Up the RichTextBox Control for WYSIWYG Printing
http://support.microsoft.com/support/kb/articles/Q146/0/22.ASP
Bye, G.
--
Le risposte alle tue domande sono sul Sito Comune
di questo NewsGroup: 
http://it-lang-vb.net/
... e nell'help in linea !


Sto guardando il codice ora... e mi è venuta in mente una possibile
soluzione. Ho stampato il contenuto della richtextbox in un file.rtf nel
quale viene rispettata tutta la formattazione... non si potrebbe in qualche
modo stampare questo file in modo da mettergliela nel c..o?!?! Dimmi se si
può fare e se funzionarebbe... ;-)
ciao

"MBortolotti" ha scritto nel messaggio

Domanda: "Beh, per stampare un file RTF come fai ?"
Risposta: "Semplice, lo carichi in una RiChTextBox, e poi..."
Non so, forse non ho capito cosa intendi... :-)
Pap.Loop


no, purtroppo a me servirebbe una routine, o una chiamata a qualche api per
stampare proprio un file.rtf, cioč, senza passare per una richtextbox o
altro, proprio stampare direttamente il file... č un pacco... non pensavo
fosse cosě incasinato... spero di essermi spiegato... io in pratica mi salvo
tutti i miei dati in un file.rtf (che se apro "appare" proprio come vorrei
che venisse stampato su carta) e poi vorrei stamparlo, semplice a dirsi ma a
farlo sembra proprio che nessuno conosca una soluzione...
ARGHHHHHHHHHHHHHHHHHH!!!!!

 fosse così incasinato... spero di essermi spiegato... io in pratica mi


 ha scritto nel messaggio
news:adlp5j$a8k$1...@newsreader.mailgate.org...

E, pur senza avendo Word, integrare in VB la libreria di Word e usare
quelli?

 ciao, j.
ciao Javalab,
    ormai le sto provando tutte... più che alla frutta sono...
all'ammazzacaffè!!! ;-)
Se vuoi inviarmi il progetto mi fai un gran favore, la mia mail è
mbort...@supereva.it
fammi sapere!!
:)

 :)
partito. se lo apri con vb ti dara' vari errori. forse ti conviene aprire
bas e frm con blocco note. io non ci capirei una mazza, ma tu dovresti
saltarci fuori :)
azz. ho messo anche l'exe, che non ti serve. 83k tot.
be', c'e' il setup sul sito :)
ciao, j.


Ricevuto!! ;-))
Ora mi ci metto e vediamo che salta fuori... deh, se ti serve qualcosa... se
vuoi ti metto in contatto col mio pusher... fa ottimi sconti... soprattutto
ai programmatori... ;-)))

 farlo sembra proprio che nessuno conosca una soluzione...
Ma HAI PROVATO quel codice microsoft ? Funzionare funziona bene,
solo che vuole accedere alla stampante a ogni avvio.
Bye, G.

 Bye, G.
SI!
sto provando anche questo ma mi da qualche errore in compilazione, ho 300
progetti vb aperti... e passo dall'uno all'altro come un forsennato...

 Bye, G.
Dunque, direi che funziona!
Perň funzionerebbe ancora meglio ;-( se riuscissi a fre il copia e incolla
del contenuto del file.rtf cosicchč inserisco nella richtextbox i dati cosě
come sonoformattati e visualizzati nel file... sarebbe l'ideale... ho
provato a giocare un pň con la clipboard in modo da simulare il
copia&incolla che faccio dal file nella richtextbox... ma non funziona gran
che bene... provo ancora cmq... sarň piů fortunato!!! ;)

 progetti vb aperti... e passo dall'uno all'altro come un forsennato...
FERMO !!!! RESETTATI ! :-)
E non scherzo, quella č la maniera migliore di fare errori.
Spegni il computer, bevi un bicchier d'acqua (se non hai
di meglio ;-) ) sciacquati la faccia e respira profondamente,
diciamo, una decina di volte. Fai quattro passi, magari.
Poi riaccendi la baracca e prova _una cosa alla volta_ :-).
Bye, G.


ciao, sto provando anche con questa libreria... devo solo capire come fare a
caricare il file.rtf nell'oggetto per poi stamparlo... teoricamente dovrebbe
funzionare allo stesso modo di come avviene lavorando su un file di word...
?:-|

 Poi riaccendi la baracca e prova _una cosa alla volta_ :-).
e hai anche ragione... la fretta č uan cattiva consigliera... e meno male
che uno a casa dovrebbe staccare!!! non mi basta farmi del male fisico tutto
il giorni in ufficio!!!!!
::-)) comincio a vederci doppio...
vado a vedermi un pň di tv va... a quest'ora dovrebbero cominciare i
programmi interessanti... ;-)=

 che bene... provo ancora cmq... sarò più fortunato!!! ;)
Ops, non ho capito, ma tu apri il file RTF... con COSA ?
Il blocco note, magari ? :-)
Ti svelo un segreto: esiste un metodo RichTextBox1.Loadfile ;-)
Ah, poi puoi usare le proprietà .Text e .TextRTF per riferirti
al contenuto.
Un suggerimento, premi F2 e cerca di familiarizzarti con
quello che vedi.
.... e rilassati :-)
Bye, G.


dunque quanto lancio in file.rtf questo viene associato on Word, e qui lo
vedo bello formattato... se da qui faccio copia e incolla nella richtetbox
rimane tutto bello formattato, mentre se uso la loadfile no... ;-(((
ora provo con .Text e textRTF...

 Ti svelo un segreto: esiste un metodo RichTextBox1.Loadfile ;-)
cosi' non vale ! gli togli tutto il divertimento !
e poi un vero jedi non sceglie la via breve !
pap, stai passando al lato oscuro ?
(coi tuoi orari, non mi stupirei :)
j.cavoli-ancora-un-po'-e-ci-consegnava-un-rtf2html-nuovo-di-zecca

 ora provo con .Text e textRTF...
Ah, uno spiraglio di luce. Controlla le versioni dei seguenti file:
riched20.dll e riched32.dll, e già che ci sei quella dell'OCX.
Bye, G.

 j.cavoli-ancora-un-po'-e-ci-consegnava-un-rtf2html-nuovo-di-zecca
Per il momento sto facendo un Rtf2Eps :-) e non è semplice.
Un Paperino e il tempo sprecato.

Scusate ma... a sto giro glielo troppo messo nel c..o ;-))))
dunque, alla fine ho risolto usando l'oggetto Word (Microsoft Word 9.0
Object Luibrary), con poche righe di codice me la sono sbrogliata! (grazie a
Lupo che mi ha illuminato a riguardo)
Eccole:
'****************************************************
Dim WordApp As Word.Application
Set WordApp = New Word.Application
'Carico il file.rtf nell'oggetto appena istanziato...
WordApp.Documents.Open App.Path & "\Scontrino.rtf"
'Stampo il file.rtf
WordApp.PrintOut
'Dealloco l'oggetto
Set WordApp = Nothing
'****************************************************
unico neo... mi rimane appeso il processo winword.exe nel task manager (e
devo killarlo a manina...) nonostante deallochi WordApp... vabbè, ma ci
guarderò domani... l'importante ere riuscire a fare sta benedetta stampa!!
E grazie infinite a tutti ragazzi!! ;-)))

 ha scritto nel messaggio
news:adm1eh$gkf$1...@newsreader.mailgate.org...
...
Auuuu, Auuuuu, Auuuuuuuuuuuu
Ehm, no, ... ma non è notte di luna piena?
Però, seriamente e ammettendo la mia totale ignoranza (solo alcune volte
camuffata con qualche piccola idea) e, naturalmente, approfittando
spudoratamente, ... insomma, ero convinto che la libreria di Word (che non
ho mai usato!) inserita fra i riferimenti di VB potesse rendere non
necessaria la presenza dell'applicativo Word.
Beh, ho toppato, vero? Stessa cosa per Excel, vero? OK, ora mi rintano.


Luna piena? miiii qua piove che la mandano... dalle mie parti (Ivrea, To) è
tutto mezzo allagato... a un certo punto è pure andata via la luce ;-((((
da qual che so uan volta che si hanno i riferimenti non è necessario avere
installato l'applicativo corrispondente; per esempio, questo applicativo che
sto facendo gira su un Win95 senza access ma il db funzia a dovere...;-)
quindi!
notte e tutti, alla proz

 installato l'applicativo corrispondente;
Sarebbe bello... se fosse vero.
Bye, G.

quindi!
Quindi Auguri!
Se usi riferimenti a componenti di Office, questi devono essere installati
sulla macchina dell' utente, che deve averne specifica licenza.
-- 
ciao, hal

 Bye, G.
aspe aspe... mega cappellata delle 24.33... eppure il mio applicativo (che
usa un db access sviluppato sotto Win2K) gira su un pc con win98 e SENZA
access installato.. comè possibile? A vb dovrebbero bastare i riferimenti,
altrimenti cosa servirebbero? Se devo far girare un'applicativo che usa
access su un server mica ci devo installare Access!! Giusto??? Altrimenti
parecchie cose non mi tornerebbero...
ciauz...

 E grazie infinite a tutti ragazzi!! ;-)))
stasera gira troppo bene... dunque, per eliminare il processo winword.exe č
necessario chiudere in questo modo:
vedi codice postato... poi alla fine:
'Dealloco l'oggetto
WordApp.Documents.Close
WordApp.Quit
Set WordApp = Nothing
e tutto funzia a meraviglia... ora sembra davvero perfetto...

 di salvataggio dati ;-)
per curiosità, quanto dovrei spendere per un buon ups? all'incirca?? ?:-o

 ha scritto nel messaggio
news:adm3gp$hs9$1...@newsreader.mailgate.org...

E' diverso. Per i database usiamo DAO/Jet o ADO/OLEDB e questi fanno a meno
dell'applicativo MS Access.
Pensavo quindi (ma mi smentite/confermate?) che bastasse riferire una
libreria di Word o Excel per poter fare quasi tutto si riesce a fare con
l'applicativo MS Word o MS Excel, come se le librerie riferite in VB
"sostituissero il motore" di gestione, ovvero tutte le proprietà e i metodi,
così come avviene per gestire database di tipo Access (non "per gestire
l'applicativo Access")

 e tutto funzia a meraviglia... ora sembra davvero perfetto...
Non mi piace, invece. In questo modo (se non arrivano notizie contrarie
dagli esperti) devi presumere che sulla macchina di destinazione del tuo
applicativo sia installato l'applicativo MS Word. E non è proprio certo,
certo!

 parecchie cose non mi tornerebbero...
di access da vb usi
- la struttura (le tabelle)
- parte del motore (via jet: del quale vb dispone a prescindere da access)
ma se provi a usarne un report, se non c'e' access onboard, hmmm...


Ma scusa, se io sviluppo un applicativo che usa massicciamente word, excel,
powerpoint e che ne so pure outlook e poi questo applicativo dovrà girare su
un server, mica dovrò installare sul server tutto i pacchetto office!!?? Il
server deve fare da server e basta, non devo installare pacchetti come
office o che so io... sarebbe una bestemmia sistemistica!!! E da quel che so
e ho visto non è  mai stata fatta una cosa simile... cmq, vhiederò al mega
espertone di fronte al mio ufficio e posterò il responso...

 certo!
raga mi stanno venendo dubbi atroci... domani sentirò il tipo sui cui devo
re-installare il programma, poi proverò e a quel punto saprò dirvi...

 ha scritto nel messaggio
news:adm4cc$i94$1...@newsreader.mailgate.org...

Spero anch'io che sia così, ma temo di no. Spiegami: Perchè secondo te il
tuo programma ha lanciato WinWord.exe e non ha fatto tutto in modo
trasparente? E' questo il dubbio che ho: I database di tipo Access possono
essere gestiti in modo "trasparente" perchè VB "contiene" riferimenti al
motore e per questo non ha bisogno dell'applicativo Access (che finisce per
essere solo "un'altra" interfaccia grafica), ma temo che le librerie per
Word e Excel (e tutto il resto di Office) riferite in VB non siano il
"motore", ma solo delle librerie di collegamento con l'applicativo Office.

 certo!
ma io in teoria non mi appoggio all'applicativo di Word in sè, bensì uso
un'istanza dell'oggetto che è il riferimento impostato nel progetto di vb
(Microsoft Word 9...)... ditemi se sto toppando... ma nella logica ad
oggetti dovrebbe essere così... ho un oggetto e istanziandolo eredito i suoi
metodi e le sue proprietà... (da quando mi hanno messo a fare Java sto
imparando la vera logica ad oggetti... è un bel passo in avanti in confronto
a vb (come complessità di ragionamento)... e ora con 
vb.net
 dicono che la
logica sarà molti simile a quella di java... vediC#... )
ahò ma non dovevo andare a dormire!??! ;-)

 "motore", ma solo delle librerie di collegamento con l'applicativo Office.
certo che se è così è una vera m###a!!! io devo stracaricare un server con
tutti gli applicativi di M$ per poter far funzionare i miei programmi che
usano determinate librerie?!? ;-((
bhò!!!??

 (Microsoft Word 9...)...
Ecco, l'hai detto! Forse non stai creando un'istanza di un "oggetto Word",
ma solo avviando "l'applicativo Word" passandogli delle chiamate attraverso
la libreria che hai inserito (speriamo che qualcuno smentisca). Comunque
sia, se puoi, compila il tuo programma e installalo correttamente su di una
macchina che non ha Word e vedi se gira. Oppure, piů semplicemente, chiudi
ogni sessione di Word eventualmente aperta, prova a rinominare (ovviamente
in via provvisoria) il file WinWord.EXE sulla tua macchina e lancia il tuo
programma. Poi, comunque vada, rimetti a posto il nome... ;-)))

 office o che so io... sarebbe una bestemmia sistemistica!!!
Spiegalo a Bill. :-)
D'altra parte, ragiona con me: se devi usare le funzioni
di Word, e NON hai Word installato, come fai ?
I riferimenti sono, appunto "riferimenti" ai programmi,
ma se i programmi non ci sono...
[PREMESSA]
Chiedo scusa per l'approssimazione, ai can- e ai -guri di DB
ma come noto non me ne intendo, e li evito se possibile
[/PREMESSA]
Per Access il discorso è un po' diverso. Access stesso,
l'applicativo, è un "gestore" di database, ma si appoggia,
come fa anche il VB, ai vari driver [inserire la vostra sigla
preferita, da scegliere fra le più frequenti su questo gruppo] che
permettono l'accesso e l'interpretazione dei file che contengono
fisicamente i dati. Questi driver dati sono gli stessi, e vengono
usati da Access, da VB, e da ogni altro applicativo in grado
di agganciarvisi.
In parole povere, se hai i driver puoi aprire un file .MDB da
vari tipi di applicativo, ma per aprire un DOC o un XLS hai
bisogno di un prog che riesca ad interpretarne il formato.
E quindi Word ed Excel.
Che poi la MS stessa abbia creato un bel po' di sovrapposizioni
fra i programmi e i formati che interpretano, magari con dei filtri,
serve ad aumentare la confusione.
Bye, G.

 re-installare il programma, poi proverò e a quel punto saprò dirvi...
E spera che abbia già Office installato.
Nel frattempo, per guadagnare tempo, controlla le versioni
di quei file che dicevo nell'altro post ;-)
Bye, G.

 programma. Poi, comunque vada, rimetti a posto il nome... ;-)))
NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO!!!
Ho provato a rinominare il file WinWord.EXE come dici tu  in modo da non
renderlo più utilizzabile dal sistema ed è accaduto quello che non avrei mai
voluto succedesse... e cioè... NON FUNZIONA PIU' UNA CIPPA!! Mi viene dato
errore dell'applicazione e si attiva il Windows Installer... ;-(((((
che storia... ma non potevano dare qualcosa di simile anche per word, excell
oltre che per Access?!?!? che giramento di balline!! SGRUNTTTTTT!!
cavolo, stasera ho imparato un sacco di cose nuove... mitico
miticozzo...;-))

 bhň!!!??
be', anche senza rtb vedo che stai scoprendo il divertimento :)
seriamente: meno oggetti altrui tocchi tu, meno cose il tuo programma forse
fara', ma vita meno grama avra'...
ciao, j.

 errore dell'applicazione e si attiva il Windows Installer... ;-(((((
Ohhhh, tranquillizzami subito! Non è che non ti va più Windows, vero?
Ti dovrebbe bastare rimettere a posto il nome e tutto è come prima, vero?
Dimmi si sì!


penso che tu abbia ragione, anche perchè alla fine quelli che se le prendono
in der posto sono quasi sempre... gli sviluppatori... o sbaglio? ;-(

 Dimmi si sì!
si si vai tranqui!!! io intendevo il programmino per stampare, certo...
rinominandolo tutto funziona ;-)))
altirmenti ero già sotto casa tua con un lancia fiamme... ;-)))
cmq, grazie davvero per le dritte... ;-))

 miticozzo...;-))
welcome into the paradise...
tutto sommato e' meglio. se lo fai con gli oggetti office di oxp, e poi ti
trovi uno che se ne stava bello beato con office95, rischi di dovergli
pagare i danni..
j.oop - office oriented pandemonium

 ha scritto nel messaggio
news:adm630$j0i$1...@newsreader.mailgate.org...

Mi spiace che la serata/nottata non sia finita in completa soddisfazione,
comunque, buonanotte.

 logica sarà molti simile a quella di java...
spero vivamente di no, per i vbnettisti :)
ciao, a.


 anch'io. poi chiudo il sacchetto e lo parametrizzo agli operatori
ecologici.
Ecco, ora vado a letto ridendo. ;-)))))))) 'notte anche a te

 Ecco, ora vado a letto ridendo. ;-)))))))) 'notte anche a te
Questo rende più rilassante il sonno, no ? :-)
Un Paperino che _ora_ comincia a programmare... 'notte a tutti. :-)

Visto che sei riuscito a usare word, se sul PC dell'utente non c'è
potresti
provare
ad usare dei visualizzatori che sono liberamente distribuibili, però nn
so
se puoi
fare la stessa cosa, dovresti provare!
    Ciao
        Mavimo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG