Konvertieren von Rich-Text-Format in Nur-Text-Probleme
Wir haben derzeit eine Anwendung (Windows-Dienst), die eine Verbindung zu einer anderen unserer Anwendungen herstellt und Rechnungen entgegennimmt. In den Rechnungen gibt es ein RTF-Feld für die Fußzeilen- / Kopfzeilenfelder. Wenn wir die Daten abrufen, wird die RTF mit dem folgenden Code in einfachen Text konvertiert:
<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>
Dies hat größtenteils funktioniert, aber in einigen Fällen (ein bestimmter Kunde bekommt es jedes Mal) erhalte ich diese Ausnahme:
<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>
Jede Hilfe darüber, warum dies geschieht oder wie wir es umgehen können, wäre sehr dankbar.
Bearbeiten: Danke an Jeremy für die Erklärung, ich bin nach Vorschlägen für RTF-Konvertierungsalternativen.