【问题标题】:Convert RTF to HTML in .NET在 .NET 中将 RTF 转换为 HTML
【发布时间】:2012-02-17 18:28:20
【问题描述】:

我已经设法使用WebBrowserRichTextBox 进行反向操作。

但是如何将 RTF 转换为 HTML?

【问题讨论】:

    标签: .net html rtf


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      我在 VB.NET 中编写此代码,并已在 CodeProject 上发布了启动代码

      Startup Code

      【讨论】:

      • 您能否在答案中添加足够多的用法概要详细信息,以便有人可以立即阅读并理解它,而不仅仅是宣传语?
      【解决方案3】:

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

      正如我所见,这个问题很老,但也许有人也在为此寻找解决方案。我们的组件 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();
          }
      

      【讨论】:

      • 我使用您的代码成功地将 rtf 转换为 html,但是当我在 TinyMCE 编辑器中加载该 html 内容并更新它们时,它只保存平面文本。它失去了它的风格。请帮忙。
      • 实际上@BrainSlugs83 的答案应该被接受,因为这个答案促进了付费工具,而 BrainSlugs83 提供的解决方案是免费的并且可以工作。
      【解决方案4】:

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

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

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

      【讨论】:

      • 自己转换标签并不是直接的。不知道如何将 C++ 库导入 .NET。 (它不是 DLL)
      猜你喜欢
      • 2011-08-20
      • 1970-01-01
      • 2014-11-15
      • 2010-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-28
      • 1970-01-01
      相关资源
      最近更新 更多