我已设法使用WebBrowser
和RichTextBox
进行相反的操作。
但是我如何将RTF转换为HTML?
答案 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上发布了启动代码
答案 3 :(得分:-2)
如果你想以编程方式进行,你应该解析你的rtf(是一个简单的基于文本的文件),将rtf控制字转换为html标签。
在这里你可以找到rtf规格 http://www.biblioscape.com/rtf15_spec.htm