在.NET中将RTF转换为HTML

时间:2012-01-24 13:56:14

标签: .net html rtf

我已设法使用WebBrowserRichTextBox进行相反的操作。

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

4 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

免责声明:我在这家公司工作。

正如我所看到的,这个问题已经过时了,但也许有人会为此搜索解决方案。我们的组件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();
    }

答案 2 :(得分:0)

唯一的问题是当你在预算上工作时,额外的成本意味着更低的利润,所以我开始开发自己的版本。主要问题是目前它只支持粗体斜体,以及某些实体(& amp,& copy,& reg,& trade,& amp; ; euro和& ###)并且缺乏字体和颜色支持,但它仍在进行中。我正在添加字体和颜色,但令我头疼的是,这些可能来自样式表而不是旧的时尚html标签。

我在VB.NET中写这篇文章并在CodeProject上发布了启动代码

Startup Code

答案 3 :(得分:-2)

如果你想以编程方式进行,你应该解析你的rtf(是一个简单的基于文本的文件),将rtf控制字转换为html标签。

在这里你可以找到rtf规格 http://www.biblioscape.com/rtf15_spec.htm

或使用现有的转换器:http://sourceforge.net/projects/rtf2html-lite/