转换Rtf到HTML

我们有一个水晶报告,我们需要发送电子邮件,但从水晶报告生成的HTML是非常简单的丑陋,并导致一些电子邮件客户端的问题。 我想将它作为富文本输出,并在可能的情况下将其转换为HTML。

有什么build议么?

我会检查CodeProject RTFConverter上的这个工具。 这家伙给出了该程序如何工作的细节以及转换的细节。

编写自己的RTF转换器

迈克·斯托尔(Mike Stall)在这里用c#写了一个代码:

http://blogs.msdn.com/jmstall/archive/2006/10/20/rtf_5F00_html.aspx

在MSDN代码示例图库中还有一个示例,名为“ RTF和HTML之间的转换”,它允许您在HTML,RTF和XAML之间进行转换。

如果你不介意弄脏你的手,那么写一个RTF到HTML转换器并不难。

编写一个通用的RTF-> HTML转换器会有些复杂,因为你需要处理数百个RTF动词。 不过,就你而言,你只能处理Crystal Reports专门使用的动词。 我敢打赌,由Crystal生成的标准RTF编码在报告和报告之间没有太大的差别。

我用C ++编写了一个RTF到HTML转换器,但它只处理基本的格式,如字体,段落alignment等。我的翻译基本上是去除了没有准备处理的任何专门的格式。 它花了大约400行的C ++。 它基本上扫描了RTF标签的文本,并用相同的HTML标签replace它们。 不在我的列表中的RTF标签被简单地删除。 编写这样的转换器时,正则expression式function非常有用。

更新:

我回到家,尝试下面的代码,它不工作。 对于任何人想知道,剪贴板不只是像我希望的那样神奇地转换东西。 相反,它允许应用程序以各种粘贴格式“上载”数据对象,然后粘贴(在我的比喻中是“下载”),被粘贴的程序指定了它的首选格式。 我个人最终使用了以前推荐的这个代码 ,它非常容易使用,非常有效。 导入代码后(在VStudio中,项目 – >添加现有文件),然后你就可以像这样HTML到RTF:

 return HtmlToRtfConverter.ConvertHtmlToRtf(myRtfString); 

或者相反的方向:

 return RtfToHtmlConverter.ConvertHtmlToRtf(myHtmlString); 

(下面是我以前不正确的答案,如果有人对这个答案的年代表感兴趣哈哈)

大多数(如果不是全部)上述答案为手头的问题提供了全面的,通常是基于图书馆的解决scheme。 我离开了我的电脑,因此无法检验这个想法,但是另外一种便宜且含糊的方法是:

 private string HTMLFromRtf(string rtfString) { Clipboard.SetData(DataFormats.Rtf, rtfString); return Clipboard.GetData(DataFormats.Html); } 

再次,不完全确定这是否会工作,但只是搞乱我的iPhone上的一些HTML我怀疑它会。 文档在这里 。 更深入的解释/文档RE可以在这里find剪贴板中数据模型的获取和设置。

(是的,我完全知道我在这里多年以后,但我认为这个问题是一些人仍然需要回答的问题)。

我不知道有任何图书馆这样做(但我相信有很多可以),但如果你已经可以从水晶报告创buildHTML为什么不使用XSLT来清理标记?

我想你可以通过使用.NET办公可编程性支持和Visual Studio工具来将它加载到Word文档对象中。

然后使用文档实例重新保存为HTML文档。

我不知道如何,但我相信完全可以在.NET中没有任何第三方库。

您可以尝试将其上传到Google文档,并以HTML格式下载。