我设法使用WebBrowser
和RichTextBox
进行相反的操作。
但是我如何将RTF转换为HTML?
免责声明:我正在为这家公司工作。
正如我所看到的,这个问题很旧,但也许有人也为此寻找了解决方案。我们的RTF到HTML组件允许将RTF转换为HTML。您可以下载组件或尝试在线演示。如有疑问,请先尝试试用版。 :)免费试用。
这是在ASP.NET中从RTF转换为HTML的代码示例:
SautinSoft.RtfToHtml r = new SautinSoft.RtfToHtml();
r.OutputFormat = SautinSoft.RtfToHtml.eOutputFormat.HTML_401;
r.ImageStyle.IncludeImageInHtml = false; //To save images inside HTML as binary data specify this property to 'true'
r.ImageStyle.ImageFolder = Server.MapPath("");
r.ImageStyle.ImageSubFolder = "images";
r.ImageStyle.ImageFileName = "picture";
string rtf = ".....";
string html = r.ConvertString(rtf);
//show HTML
if (html.Length>0)
{
Response.Buffer = true;
Response.Clear();
Response.ContentType = "text/html";
Response.Write(html);
Response.Flush();
Response.End();
}
如果弹出NuGet并搜索“ RTF”,则目前最受欢迎的结果看起来像RtfPipe
;您可以在此处安装它,也可以通过软件包管理器控制台通过以下方法安装:
Install-Package RtfPipe
然后在您的C#中,您可以轻松地将RTF超级转换为HTML:
var html = RtfPipe.Rtf.ToHtml(rtf);
根据their GitHub page上的readme.md:
此库试图支持RTF规范1.9.1中记录的核心RTF功能。这些功能包括:
- 字符格式(粗体,斜体,颜色等)
- 表(包括嵌套表)
- 列表
- 超链接
- 图片
- 标题级别
- HTML封装(例如,由Outlook执行)
话虽如此,非平凡的文档在很多情况下,与其他RTF阅读器(例如MS Word)相比,该库将无法产生“正确的”视觉表示。
我通过管道将RTF插入其中,并且效果惊人。 YYMV。
唯一的问题是,当您按预算进行工作时,额外的成本意味着利润会降低,因此我开始开发自己的版本。主要的问题是,目前它仅支持Bold和Italic以及某些实体(&amp,&copy,&reg,&trade,&euro和&###),并且不支持字体和颜色,但它仍在进行中。我要添加字体和颜色,但我头疼的是它们可能来自样式表,而不是老式的html标签。
我正在VB.NET中编写此文件,并将启动代码发布在CodeProject上
如果要以编程方式执行此操作,则应解析rtf(基于文本的简单文件),将rtf控制字转换为html标签。
在这里您可以找到rtf规格http://www.biblioscape.com/rtf15_spec.htm