Come posso estrarre/inserire testo nella stringa RTF in C#
Domanda
In un'app console C# ho la necessità di estrarre il testo da una stringa RTF, aggiungervi altro testo e quindi riconvertirlo in RTF.Sono riuscito a farlo utilizzando la classe System.Windows.Forms.RichTextBox, ma trovo un po' strano utilizzare un controllo Forms in un'app non Forms.Qualche modo migliore per farlo?
Soluzione
Consulta la discussione su questo argomento:
Altri suggerimenti
Fare qualsiasi cosa con RTF è piuttosto difficile a meno che non si utilizzino i moduli di Windows.Come affermato sopra, utilizzare i moduli è il modo più semplice per procedere.
Potresti scrivere qualcosa tu stesso, ma le specifiche RTF sono piuttosto complicate.
http://www.biblioscape.com/rtf15_spec.htm
Oppure potresti utilizzare un oggetto di conversione DLL / ActiveX di cui è disponibile un gran numero.http://www.sautinsoft.com/
Oppure: se lo fai da Linux, ci sono anche strumenti disponibili.Uno sguardo superficiale fa apparire UnRTFhttp://www.gnu.org/software/unrtf/unrtf.html
Non ho incluso elementi per riportare il testo in RTF perché penso che le specifiche RTF trattino e formattino il testo correttamente.
Penso che dovresti semplicemente scrollarti di dosso questa sensazione di "strano".Non c'è niente di strano in questo.
Dipende da cosa intendi per "migliore".Stai già utilizzando il modo più semplice e più semplice per farlo.
Non c'è niente di sbagliato nell'usare un controllo dell'interfaccia utente in un'applicazione console o anche in un'applicazione web.I controlli di Windows fanno parte di .NET Framework, tanto vale usarli.Non è necessario che questi controlli siano ospitati in "moduli" per funzionare.
Reinventare la ruota, usare DLL/ActiveX/OCX e usare Linux semplicemente non sono risposte pratiche alla tua domanda.Il modo migliore è... fai quello che sai.In realtà esiste un vantaggio in termini di prestazioni e manutenzione nell'utilizzare i metodi del framework esistente rispetto all'utilizzo delle alternative suggerite.