Ciao
Ragazzi devo stampare una fattura da codice, ho il file rtf che contiene tutta la struttura della fattura il mio problema è come posso compilare i campi a runtime nel file rtf?
Ciao
Ragazzi devo stampare una fattura da codice, ho il file rtf che contiene tutta la struttura della fattura il mio problema è come posso compilare i campi a runtime nel file rtf?
Devi far caricare tutta la struttura RTF che al dì la di quello che tu vedi visivamente con WORD o con altri programmi sotto ha un vero e proprio linguaggio
In giro c'è un'utility che permette di inserire in una variabile stringa di VB6 tutto il testo RTF
Quindi
- apri il programma che legge la struttura(WORD, oppure in vb6 con le richtextbox,o altro...)
- dove hai i campi da compilare scrivi ad esempio CAMPO1, CAMPO2 ecc....
- selezioni tutto il documento
- lo copi (CTRL+C)
- apri l'utility
- incolli il testo nel primo campo
- premi converti
- ora copia tutto il testo creato nella tua applicazione VB assegnandolo ad una varibile
- Ora carichi la variabile con rich1.TextRTF=miaVariabile
Ti faccio un esempio:
Devo fare un testo del tipo
Ciao bello come va?
Al posto della parola bello voglio una cosa scelta dall'utente magari con una textbox
Quindi uso l'utility come ti ho detto prima e mi genera il seguente codice
"{\rtf1\ansi\ansicpg1252\deff0\deflang1040{\fonttb l{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\fnil\fcharset0 MS Sans Serif;}}" & VBCRLF & "\viewkind4\uc1\pard\f0\fs24 Ci ao \b bello \b0 come va?\f1\fs17 " & VBCRLF & "\par }" & VBCRLF
Lo copio e lo incollo nel mio progetto nel seguente modo
miaVariabile="{\rtf1\ansi\ansicpg1252\deff0\deflan g1040{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\fnil\fcharset0 MS Sans Serif;}}" & VBCRLF & "\viewkind4\uc1\pard\f0\fs24 Ci ao \b bello \b0 come va?\f1\fs17 " & VBCRLF & "\par }" & VBCRLF
Ora Cambio bello con una mia textbox
miaVariabile="{\rtf1\ansi\ansicpg1252\deff0\deflan g1040{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\fnil\fcharset0 MS Sans Serif;}}" & VBCRLF & "\viewkind4\uc1\pard\f0\fs24 Ci ao \b " & Text1.Text & " \b0 come va?\f1\fs17 " & VBCRLF & "\par }" & VBCRLF
E poi
Me.RichTextBox1 = miaVariabile
Spero di essere stato chiaro
AH....L'utility si chiama TEXTRTF 1.2 non fa altro che dividere tutto il contenuto rtf un piccoli pezzettini
Scaricala da qui:
digilander.libero.it/emanuele.coiana/rtxhelp.htm
Scusami ma l'esempio te l'ho fatto per VB6
Per VB.NET cambia poco :
Dim miaVariabile As String
miaVariabile = "{\rtf1\ansi\ansicpg1252\deff0\deflang1040{\fonttb l{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\fnil\fcharset0 MS Sans Serif;}}" & vbCrLf & "\viewkind4\uc1\pard\f0\fs24 Ciao \b " & TextBox1.Text & "\b0 come va\f1\fs17 " & vbCrLf & "\par }" & vbCrLf
Me.RichTextBox1.Rtf = miaVariabile
Attenzione che se copi sto esempio dal forum non sembra funzionare probabilmente il codice RTF non viene memorizzato correttamente
Ciao scusami è tutto chiaro, volevo solo chiederti una cosa: ma posso generare il file rtf da WORD con i campi come dici tu (CAMPO1...ecc) melo leggo come file di testo in vb.net e sostituisco con un replace i campi che mi interessano? O devo usare per forza quella utility?....
Grzazie 1000, scusami se non ti ho risp subito....
Grazie 1000, ho fatto una prova e va tutto benissimo!
Mi sei stato molto di aiuto!![]()
Scusami TrigunXX, posso chiederti un altro favore? Sto provando i controlli di .net per la stampa (PrintDocument....) come posso stampare il file rtf?
Grazie e scusami!
Ho provato a stampare ma se nel file rtf ci sono delle tabelle non mele stampa mentre il testo si, come mai?
Purtroppo non ho ancora molta dimestichezza con il .NET e con la stampa ma ho visto che se inserisci una tabella nella Rich e quest'ultima è troppo stretta il testo va a capo senza ricostruire il contorno della tabella nonostante cia sia il Multiline=true e Scrollbars=Both
Puo' darsi che prima di prendere il testo CTRL+C da Word bisogni impostare una larghezza fissa della tabella o qualcosa del genere(in modo che nel codice RTF vengano aggiunti dei parametri che non permettano alla tabella il ritorno a capo).
Se pero' adatti la larghezza del controllo Rich alla larghezza della tabella il testo non va a capo....
Una soluzione alternativa (finchè non risolvi il problema) sarebbe quella di creare un file stampa.rtf con tutto il documento e lanciare successivamente l'apertura di questo file tramite shell...si dovrebbe aprire con WORD/WORDPAD e da qui l'utente usa la sua stampa...
La soluzione di aprire l'rtf tramite shell non è molto elegante...Io ho il file rtf ma nn capisco come mai non si stampano i bordi della tab....VVoVe: