Преобразование из форматированного текста в простые текстовые задачи
В настоящее время у нас есть приложение (служба Windows), которое подключается к другому из наших приложений и получает счета. В счетах есть поле RTF для полей нижнего колонтитула. Когда мы получаем данные, RTF преобразуется в обычный текст со следующим кодом:
<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>
По большей части это работает, но в некоторых случаях (каждый конкретный клиент получает его каждый раз) я получаю следующее исключение:
<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>
Любая помощь по поводу того, почему это происходит или как мы можем обойти это, будет высоко ценится.
EditСпасибо Джереми за объяснение, я после предложений по альтернативным вариантам преобразования RTF.