我们有一份水晶报告,我们需要将其作为电子邮件发送出去,但水晶报告生成的HTML非常简单,并且会导致某些电子邮件客户端出现问题。我希望将其导出为富文本,并在可能的情况下将其转换为HTML。
有什么建议吗?
答案 0 :(得分:29)
我会在CodeProject RTFConverter上查看这个工具。这个人给出了程序如何工作以及转换细节的详细分类。
答案 1 :(得分:8)
Mike Stall发布了他在c#中写道的代码:
http://blogs.msdn.com/jmstall/archive/2006/10/20/rtf_5F00_html.aspx
答案 2 :(得分:7)
MSDN代码示例库中还有一个名为Converting between RTF and HTML的示例,它允许您在HTML,RTF和XAML之间进行转换。
答案 3 :(得分:2)
如果你不介意弄脏手,那么将RTF写入HTML转换器并不困难。
编写通用RTF-> HTML转换器会有些复杂,因为您需要处理数百个RTF动词。但是,在您的情况下,您只处理Crystal Reports专门使用的那些动词。我敢打赌,Crystal生成的标准RTF编码在报告与报告之间差异不大。
我用C ++编写了一个RTF到HTML转换器,但它只处理基本格式,如字体,段落对齐等。我的翻译基本上删除了任何不准备处理的专用格式。花了大约400行C ++。它基本上扫描文本的RTF标签,并用等效的HTML标签替换它们。不在我的列表中的RTF标记被简单地删除。编写这样的转换器时,正则表达式功能非常有用。
答案 4 :(得分:2)
我回到家并尝试了下面的代码,但它不起作用。对于任何想知道的人来说,剪贴板不仅可以神奇地转换像我希望的那样。相反,它允许应用程序排序"上传"一个具有各种粘贴格式的数据对象,然后粘贴(在我的比喻中将是"下载")被粘贴的程序指定其首选格式。我个人最终使用了this code,这是之前推荐的,它非常容易使用且非常有效。导入代码后(在VStudio,Project - >添加现有文件)中,然后只需将html转到rtf:
return HtmlToRtfConverter.ConvertHtmlToRtf(myRtfString);
或相反的方向:
return RtfToHtmlConverter.ConvertHtmlToRtf(myHtmlString);
大多数(如果不是全部)上述答案提供了针对当前问题的全面的,通常是基于库的解决方案。 我离开了我的计算机,因此无法测试这个想法,但另外一种替代方案,廉价且模糊的hack-y方法如下。
private string HTMLFromRtf(string rtfString)
{
Clipboard.SetData(DataFormats.Rtf, rtfString);
return Clipboard.GetData(DataFormats.Html);
}
同样,不完全确定这是否可行,但只是在我的iPhone上乱搞一些html我怀疑它会。文档为here。更深入的解释/文档RE可以在剪贴板中获取和设置数据模型here。
(是的,我很清楚我多年后才来这里,但我认为这个问题是有些人还想要回答的问题。)
答案 5 :(得分:-1)
我不知道有任何库可以执行此操作(但我确信有很多可以执行此操作)但是如果您已经可以从Crystal报表创建HTML,为什么不使用XSLT来清理标记?
答案 6 :(得分:-1)
我认为您可以使用.NET office可编程性支持和Office for Office Studio工具将其加载到Word文档对象中。
然后使用文档实例重新保存为HTML文档。
我不确定如何,但我相信它完全可以在.NET中没有任何第三方库。
答案 7 :(得分:-3)
您可以尝试将其上传到Google文档,然后将其下载为HTML。