【发布时间】:2022-02-03 22:54:43
【问题描述】:
我遇到了以下在 C# 中将 HTML 文档转换为 RTF 的方法。
private static byte[] HtmlDocumentToRtfBytes(string html)
{
var rtbTemp = new System.Windows.Forms.RichTextBox();
var wb = new System.Windows.Forms.WebBrowser();
wb.Navigate("");
var doc = wb.Document.OpenNew(true);
doc.Write(html);
wb.Refresh();
wb.Document.ExecCommand("SelectAll", false, null);
wb.Document.ExecCommand("Copy", false, null);
rtbTemp.SelectAll();
rtbTemp.Paste();
return Encoding.ASCII.GetBytes(rtbTemp.Rtf);
}
但不幸的是,在执行“SelectAll”或“Copy”命令时,WebBrowser 似乎存在问题,因为当我检查 RichTextBox 的内容时,它只包含我在执行程序之前剪贴板中的内容.
该方法在 Microsoft Outlook 的 COM 加载项中运行。 .NET 版本是 4.7.2
【问题讨论】:
-
SelectAll和Copy不是在原网页上执行宏吗?
-
@jdweng 是的,它应该用页面的内容填充剪贴板
-
如果您使用不同的 URL,新的 URL 可能没有这些命令。
-
@jdweng 该网址是关于:空白
-
您没有 URL,因此这两个命令不存在。什么是原始网址。
标签: c# .net winforms webbrowser-control richtextbox