49

我们有一个水晶报告,我们需要以电子邮件的形式发送出去,但是从水晶报告生成的 HTML 非常丑陋,并且会导致一些电子邮件客户端出现问题。如果可能的话,我想将其导出为富文本并将其转换为 HTML。

有什么建议么?

4

8 回答 8

31

我会在 CodeProject RTFConverter 上查看这个工具。这个人对程序如何工作以及转换的细节进行了很好的分解。

编写自己的 RTF 转换器

于 2009-03-12T13:41:32.113 回答
7

Mike Stall 在这里发布了他用 c# 编写的代码:

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

于 2009-01-13T17:21:39.640 回答
7

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

于 2011-04-28T18:32:34.487 回答
3

更新:

我回到家并尝试了以下代码,但它不起作用。对于任何想知道的人,剪贴板不只是像我希望的那样神奇地转换东西。相反,它允许应用程序以各种粘贴格式“上传”数据对象,然后粘贴(在我的比喻中是“下载”)程序被粘贴到指定其首选格式。我个人最终使用了之前推荐过的这段代码,它非常易于使用且非常有效。导入代码(在 VStudio 中,项目 -> 添加现有文件)后,您只需像这样将 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 我怀疑它会。文档在这里。更深入的解释/文档 RE 可以在此处找到剪贴板中数据模型的获取和设置。

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

于 2015-07-15T00:44:16.500 回答
1

如果您不介意自己动手​​,编写一个 RTF 到 HTML 转换器并不难。

编写一个通用的 RTF->HTML 转换器会有些复杂,因为您需要处理数百个 RTF 动词。但是,在您的情况下,您只处理 Crystal Reports 专门使用的那些动词。我敢打赌,Crystal 生成的标准 RTF 编码不会因报告而异。

我用 C++ 编写了一个 RTF 到 HTML 转换器,但它只处理基本格式,如字体、段落对齐等。我的翻译器基本上去除了它不准备处理的任何特殊格式。它花了大约 400 行 C++。它基本上扫描文本中的 RTF 标记并用等效的 HTML 标记替换它们。不在我列表中的 RTF 标签会被简单地删除。编写这样的转换器时,正则表达式函数非常有用。

于 2009-01-13T16:13:58.467 回答
-1

我认为您可以使用 .NET 办公可编程性支持和 Visual Studio 办公工具将其加载到 Word 文档对象中。

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

我不知道怎么做,但我相信在没有任何第三方库的情况下完全在 .NET 中是可能的。

于 2009-01-13T15:23:36.913 回答
-3

我不知道有任何库可以做到这一点(但我相信有很多库可以)但是如果您已经可以从水晶报告创建 HTML,为什么不使用 XSLT 来清理标记呢?

于 2009-01-13T15:18:52.167 回答
-3

您可以尝试将其上传到谷歌文档,并将其下载为 HTML。

于 2009-01-13T15:26:15.083 回答