是否有免费的第三方或.NET类将HTML转换为RTF(用于启用富文本格式的Windows窗体控件)?
"免费"要求来自这样一个事实,即我只是在处理原型,只需加载BrowserControl,只需要呈现HTML(即使它很慢),并且Developer Express将发布自己的这样的控制很快.
我不想学习手工编写RTF,而且我已经知道HTML,所以我认为这是快速获得一些可证明代码的最快方法.
实际上有一个简单而自由的解决方案:使用你的浏览器,这就是我使用的技巧:
var webBrowser = new WebBrowser(); webBrowser.CreateControl(); // only if needed webBrowser.DocumentText = *yourhtmlstring*; while (_webBrowser.DocumentText != *yourhtmlstring*) Application.DoEvents(); webBrowser.Document.ExecCommand("SelectAll", false, null); webBrowser.Document.ExecCommand("Copy", false, null); *yourRichTextControl*.Paste();
这可能比其他方法慢,但至少它是免费的并且有效!
查看有关XHTML2RTF的 CodeProject文章.
扩展Spartaco的答案,我暗示了以下有效的方法!
Using reportWebBrowser As New WebBrowser reportWebBrowser.CreateControl() reportWebBrowser.DocumentText = sbHTMLDoc.ToString While reportWebBrowser.DocumentText <> sbHTMLDoc.ToString Application.DoEvents() End While reportWebBrowser.Document.ExecCommand("SelectAll", False, Nothing) reportWebBrowser.Document.ExecCommand("Copy", False, Nothing) Using reportRichTextBox As New RichTextBox reportRichTextBox.Paste() reportRichTextBox.SaveFile(DocumentFileName) End Using End Using