//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)
Отлично работает в моей системе (32-разрядная версия Windows 7)
Версия браузера то же самое в моей системе и клиентской системе, т. е. IE 11.
Мы не хотим использовать какие-либо платные инструменты, такие как SautinSoft.
Я пытаюсь преобразовать текст HTML в RTF в приложении Windows C#. Для этого
[list] [*]Я создал один пример приложения Windows на C#. [*]Используется элемент управления веб-браузера. [*]Загрузите в него HTML-текст. [*] Вызывается метод ExecCommand объекта документа веб-браузера с помощью «Выбрать» и Параметр «Копировать» один за другим. [*]Команда «Выбрать» выделяет текст, но команда «Копировать» не копирует выделенный текст в буфер обмена. [/list] Ниже приведен код, который я использовал:
[code] //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; } [/code]
Примечания:
[list] [*]Я также пометил метод Main как STAThreadAttribute Это не работает в клиентской системе (Windows Server 2019) [*]Отлично работает в моей системе (32-разрядная версия Windows 7) [*]Версия браузера то же самое в моей системе и клиентской системе, т. е. IE 11. [*]Мы не хотим использовать какие-либо платные инструменты, такие как SautinSoft. [/list]