Iterpretare documento .rtf

martedì 10 aprile 2007 - 13.50

giopinto Profilo | Newbie

ciao ragazzi, un salutone a tutti
è da poco che "smanetto" con vb.net e come potete immaginare mi imbatto spesso in cose che non riesco a risolvere.
vi spiego il mio problema:
Leggo da un data base DB2 un campo di tipo CLOB, che contiene un documento .rtf non interpretato, cioè con tutti quei segni strani....
( per capirsi se copio il contenuto in un file .txt e poi lo rinomino .rtf vedo la formattazione!! )
io dovrei scrivere questo campo su un documento rtf già aperto!!
le domande sono 2

1) come posso scrivere il file e interpretarlo? cioè far vedere all'utente il risultato finito?? e viceversa?? (leggere il file non interpretato per inserirlo nel db)

2) come posso scrivere in corrispondenza del cursore/prompt??

sono arrivato a fare questo, dove riesco a scrivere nel documento aperto!

Dim MioRange As Microsoft.Office.Interop.Word.Range
MioRange = applicationObject.Application.ActiveDocument.Conte nt
MioRange.InsertAfter("Testo da scrivere")

un grazie a tutti coloro mi daranno una mano

munissor Profilo | Senior Member

Usa un controllo RichTextBox!

Se proprio non vuoi utilizzare System.Windows.Forms trovi un parser RTF in Mono (Implementazione open source di .NET, www.mono-project.com) ma visto che utilizzi word penso che non ci siano problemi con il RichTextBox.

Ciao!!

giopinto Profilo | Newbie

ciao
grazie per l'idea ci avevo pensato e dopo che me lo hai detto c'ho pure provato, ma con scarsi risultati....

ecco come ho fatto:

'rsRecord("TestoFile") contiene la stringa rtf (esempio: "{\rtf1\ansi\ansicpg1252\deff0{\fonttbl {\f0\fnil\fcharset0 MS Sans Serif;}}\viewkind4\uc1\pard\lang1031\b\f0\fs1)

richTextBox.rtf = rsRecord("TestoFile")

ma sulla controllo richtext non vedo nulla.
e poi un'altra domanda, ma poi per portare il testo formattato della richtextbox sul doc word??

l'idea che avevo era quella di appoggiare il codice rtf su un documento.rtf creato al volo e poi includerlo nel doc word (esempio: mioApp.Selection.InsertFile("c:\prova.rtf") ), ma la trovo una e vera zozzata!!!
conosci un modo per fare tutto in modo + pulito??
grazie tante

munissor Profilo | Senior Member

Bhe...non vorrei sbagliarmi, ma la striga RTF che hai postato non contiene testo, solo caratteri di formattazione.

Il codice è giusto comunque, imposti la proprietà RTF del RichTextBox, poi ci sono un sacco di metodi per spostare la posizione del cursore e modificare il testo.. per ottenere il testo non formattato c'è Text.

Poi non capisco se "devi" usare word per forza per visualizzare il documento. Non puoi utilizzare direttamente il RichTextBox?
In caso poi puoi salvare il documento rft come file (in %tmp% per esempio) e aprirlo con il visualizzatore predefinito di windows utilizzando Process.Start... Molto più semplice che utilizzare COM interop...

giopinto Profilo | Newbie

ciao grazie tante per l'aiuto ma la mia situazione è un po' diversa, nel senso che il documento word è già aperto, perchè la mia applicazione è un add-in per word!!
cmq x ora ho risolto facendo come ti ho detto, cioè appoggiando la stringa letta dal db in un file .rtf e poi inserendo tale file nel mi doc word, viceversa qnd devo scrivere nel db salvo il mio doc come .rtf e me lo leggo....
lo so non'è pulitissima come cosa, ma l'importante è ke per ora funzioni..... ho una demo tra poco!!

ora avrei un'altra urgenza, cioè quella di poter scrivere sul doc word,selezionando alcuni valori dalla mia applicazione, dov'è posizionato il cursore, il prompt di word.....

ti ringranzio anticipatamente

munissor Profilo | Senior Member

Boh..il modello a oggetti di word non lo conosco più di tanto. Li non ti posso aiutare
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5