Convertir de formato de texto enriquecido a problemas de texto plano
Actualmente tenemos una aplicación (servicio de Windows) que se conecta a otra de nuestras aplicaciones y toma las facturas. En las facturas hay un campo RTF para los campos de pie de página / encabezado. Cuando capturamos los datos, el RTF se convierte en texto plano con el siguiente código:
<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; } </code>
Esto ha funcionado en su mayor parte, pero en algunos casos (un cliente en particular lo obtiene cada vez) obtengo esta excepción:
<code>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) </code>
Cualquier ayuda sobre por qué sucede esto o cómo podemos solucionarlo sería muy apreciada.
Editar: Gracias a Jeremy por la explicación, busco sugerencias para alternativas de conversión RTF.