Converting from rich text format to plain text problems
rtf, winforms
Solution
I ended up using this. I know that it may not parse 100% of RTF text but we ran it against our live data to test it and it works fine for our purposes.
Regex.Replace(rtfString, @"\{\*?\\[^{}]+}|[{}]|\\\n?[A-Za-z]+\n?(?:-?\d+)?[ ]?", "");
Problem
We currently have an application (Windows service) that connects to another of our applications and grabs invoices. In the invoices there is a RTF field for the footer/header fields. When we grab the data the RTF is converted to plain text with the following code: ``` public static string ConvertFromRTFToPlainText(string rtfString) { if (rtfString == null) return null; System.Windows.Forms.RichTextBox rtBox = new System.Windows.Forms.RichTextBox(); if (rtfString.StartsWith("{\\rtf1")) rtBox.Rtf = rtfString; else rtBox.Text = rtfString; return rtBox.Text; } ``` This has worked for the most part but in some cases (one particular client gets it everytime) I get this exception: ``` Exception Message:Error creating window handle. Stack trace: at System.Windows.Forms.NativeWindow.CreateHandle(CreateParams cp) at System.Windows.Forms.Control.CreateHandle() at System.Windows.Forms.TextBoxBase.CreateHandle() at System.Windows.Forms.RichTextBox.set_Rtf(String value) at SmartTrade.Common.API.Tools.RTFHelperUtility.ConvertFromRTFToPlainText(String rtfString) at SmartTrade.Desktop.Proxy.API.ObjectMapper.InvoiceObjectMapper.CovertToAPIInvoice(Invoice domainInvoice) ``` Any help on why this is happening or how we can work around it would be much appreciated. Edit: Thanks to Jeremy for the explanation, I am after suggestions for RTF conversion alternatives.