Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Elaborazione di RTF (o DOC) da VB

Ciao a tutti nuovamente;
ho generato un RTF semplicemente salvando il contenuto di un RTF Control.
Ora ho bisogno di:
1)     Aggiungere delle interruzioni di pagina
2)     Creare un indice dei capitoli
3)     (opzionale) Aggiungere delle intestazioni e dei piè di pagina (quindi il documento deve avere più di una sezione)
Queste modifiche possono esser fatte sia a documento già creato sia in fase di creazione o prima (ancora nel RTBox, ma
non credo sia possibile).
So che è possibile farlo, magari ci va di mezzo qualcosa di VBA... qualcuno saprebbe darmi una dritta?
Ringrazio anticipatamente,
Ciao,
Moreno
#sirri#@
morenosoft.com
(togliete "#" dall'indirizzo)
Moreno Sirri VB Site - 
http://www.morenosoft.com/MSVBSite/
---------------------------------------------------------------------------
Le risposte alle tue domande le trovi sul Sito Comune di questo NewsGroup:
 
http://www.murialdo.it/it_lang_vb
---------------------------------------------------------------------------




 wrot


ciao, andrea
Wow, che velocità!
Lo so che gli HTML sono più "comodi", ma per necessità di stampa ho preferito optare per gli RTF.
Per quanto riguarda l'interruzione di pagina ho scoperto che il codice è:
\par \page 
Io pensavo, una volta generato il file, di aprirlo in modalità binaria o sequanziale ed i aggiungere manualmente questa
riga. Però è tecnicamente uno schifo..... non è che c'è un altro modo? Ovvero, l'ideale sarebbe inviare un codice RTF
direttamente all'RTF Control, ma ho spulciato in lungo ed in largo le varie guide senza trovare nulla....
Per quanto riguarda le intestazioni ed i piè di pagina proverò a trovarli anche questi empiricamente (leggendo i codici
dell'RFT prima e dopo le modifiche)...
Per quanto riguarda le sezioni, beh, potrei farne a meno, come delle intestazioni e mi sa che se mi rompo presto, ci
rinuncerò sì.....
Grazie ancora e a presto,


 direttamente all'RTF Control, ma ho spulciato in lungo ed in largo le
varie guide senza trovare nulla....
io l'rtf lo tengo in un memo e nella grid vb me lo visualizza con tanto di
codici, cioe' tutti i campi iniziano con graffa rtf1 backslash.
qdi forse giocando col clipboard e i formati text e rtf...
ma non ci giurerei affatto.
ciao, a.
e grazie mille per l'altro chiarimento. io me lo studio senz'altro,
inoltre... vedrai, la domanda tornera'... archiviare, archiviare... :)

ho fatto qualcosa di simile usando le sendkeys (su word)...
lo so, fa schifo, e me ne vergogno... ma era una richiesta specifica...
ho una serie di testi rtf in una lista, ne seleziono alcuni e, alla
conferma, li invio a word dove, con delle sendkeys, gestisco
l'impaginazione... speriamo che M$ non cambi le iniziali dei comandi nei
menu...
comunque l'rtf non supporta un sacco di cose... tabelle, intestazioni e piè
di pagina, ecc...
se ti serve ti invio il codice... ma ti avverto, non è una logica
'elegante'...
--[GbC]--

'elegante'...
Sì, lo ammetto, non è il massimo come eleganza..... se non riesco a trovare di meglio te lo faccio sapere.
Grazie,


inoltre... vedrai, la domanda tornera'... archiviare, archiviare... :)
Eh eh eh.... già lo so...... ;-)))
Più volte in questo NG ho sentito quanto potente sia il copia/incolla...... ^____^


 ---------------------------------------------------------------------------
Ciao, non so se quanto ti mando è utile al tuo problema, ma io utilizzo questa routine che ho fatto per creare degli RTF
"InCode", cioè senza caricare nessun file esternamente.
Il tutto viene generato in tempo reale.
            newtext = "{\rtf1\ansi\deff0\deftab720{\fonttbl{\f0\fswiss MS Sans Serif;}{\f1\froman\fcharset2
Symbol;}{\f2\fswiss Tahoma;}{\f3\fswiss\fprq2 Arial;}}"
            newtext = newtext & "{\colortbl\red0\green0\blue0;}"
            newtext = newtext & "\deflang1033\pard\li1440\fi-1440\plain\f2\fs16 "
            newtext = newtext & "\par "
            If fExists(est_list(estid).FileRef) Then
                newtext = newtext & "\plain\f2\fs16\b File size: \plain\f2\fs16 " & Str$(FileLen(est_list(estid).FileRef)) &
" bytes"
                newtext = newtext & "\par \par \plain\f2\fs16\b Date and Time: \tab \plain\f2\fs16 " &
Format(FileDateTime(est_list(estid).FileRef), "mm/dd/yyyy hh:mm:ss") & "\par "
            Else
                newtext = newtext & "\plain\f2\fs16\b [UNAVAILABLE FILE]\plain\f2\fs16\par"
            End If
            For i = 0 To nuvars
                If vars_list(i).vformat = 0 Then
                    newtext = newtext & "\par\plain\f2\fs16\b " & vars_list(i).vname & " \tab \plain\f2\fs16 " &
est_list(estid).VarData(i).List(0)
                Else
                    If est_list(estid).VarData(i).NuList = 0 And est_list(estid).VarData(i).List(0) = "" Then
                        newtext = newtext & "\par\plain\f2\fs16\b " & vars_list(i).vname & " \tab \plain\f2\fs16 " & "[List:
no items found]"
                    Else
                        newtext = newtext & "\par\plain\f2\fs16\b " & vars_list(i).vname & " \tab \plain\f2\fs16 " & "[List:
" & est_list(estid).VarData(i).NuList + 1 & " items found]"
                    End If
                End If
            Next i
            newtext = newtext & "}"
            MainForm.Label6.Caption = est_list(estid).FileRef
            .TextRTF = newtext
            .Refresh
Il codice che ti riporto contiene ovviamente dei riferimenti a quanto deve fare il mio programma, ma i comandi RTF sono
corretti. Ciao, e spero di esserti stato utile.

Il tutto viene generato in tempo reale.
Per ora ho risolto riaprendo il file ed aggiungendo i codici...
Ci darņ un'occhiata e vedo se resco a migliorare il tutto...
Grazie!!!





 ciao, a.
