如果你弹出 NuGet 并搜索“RTF”,现在最流行的结果是这样的RtfPipe;你可以在那里安装它,或者通过包管理器控制台通过:
Install-Package RtfPipe
Run Code Online (Sandbox Code Playgroud)
然后在你的 C# 中,你可以非常轻松地将 RTF 转换为 HTML:
var html = RtfPipe.Rtf.ToHtml(rtf);
Run Code Online (Sandbox Code Playgroud)
根据他们 GitHub 页面上的 readme.md :
该库尝试支持 RTF 规范 1.9.1 中记录的核心 RTF 功能。这些功能包括:
- 字符格式(粗体、斜体、颜色等)
- 表(包括嵌套表)
- 列表
- 超链接
- 图片
- 标题级别
- HTML 封装(例如由 Outlook 执行)
话虽如此,与其他 RTF 阅读器(例如 MS Word)相比,在许多非平凡文档的情况下,库不会产生“正确”的视觉表示。
我把我的 RTF 用管道输送到它里面,它的效果非常好。YYMV。
小智 1
免责声明:我在这家公司工作。
正如我所见,这个问题很老了,但也许有人也在寻找解决方案。我们的 RTF to 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();
}
Run Code Online (Sandbox Code Playgroud)