Я пытаюсь преобразовать HTML текст в RTF в приложении C# windows. Для этого
- Я создал один пример windows приложения в C#.
- Используется элемент управления веб-браузера.
- Загрузка HTML текста в него .
- Вызванный объект документа веб-браузера Метод ExecCommand с параметрами «Select» и «Copy» один за другим.
- Команда выбора выделяет текст, но команда Copy не копирует выделенный текст в буфер обмена .
Ниже приведен код, который я использовал:
//Load HTML text
System.Windows.Forms.WebBrowser webBrowser = new System.Windows.Forms.WebBrowser();
webBrowser.IsWebBrowserContextMenuEnabled = true;
webBrowser.Navigate("about:blank");
webBrowser.Document.Write(htmlText);//htmlText = Valid HTML text
//Copy formatted text from web browser
webBrowser.Document.ExecCommand("SelectAll", false, null);
webBrowser.Document.ExecCommand("Copy", false, null); // NOT WORKING
//Paste copied text from clipboard to Rich Text Box control
using (System.Windows.Forms.RichTextBox objRichTextBox = new System.Windows.Forms.RichTextBox())
{
objRichTextBox.SelectAll();
objRichTextBox.Paste();
string rtfTrxt = objRichTextBox.Rtf;
}
Примечания:
- Я также пометил метод Main как STAThreadAttribute
- Это не работает в клиентской системе (Windows Server 2019)
- Работает нормально в моей системе (Windows 7 32 бита)
- Версия браузера на моем компьютере такая же системный и клиентский ststem т.е. IE 11
- Мы не хотим использовать какой-либо платный инструмент, такой как SautinSoft.