在 .NET 中将 RTF 转换为 HTML

Doo*_*ght 4 .net html rtf

我已经设法使用WebBrowserand做相反的事情RichTextBox

但是我如何将 RTF 转换为 HTML?

Bra*_*s83 9

如果你弹出 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)