6

我有多个包含嵌入图像的 SSRS 2008 报告模板,并且这些模板当前在任何报告管理器预览中都按预期可见(使用呈现扩展 HTML 4.0)。但是,我需要将这些报告作为 HTML 电子邮件发送出去。

我相信这里的基本/最简单的技术是将图像作为内联 base64 字符串附加到 HTML 中的图像标签。有没有办法在 SSRS 中自动执行此操作,或者实现此或类似结果的最佳实践是什么(即图像作为附件导致不太互操作的 MHTML 而不是纯 HTML)?

电子邮件必须按原样显示而不连接到任何外部存储(即,由发件人托管图像是不可行的)。此外,我们不会使用 SSRS 本身来发送生成的 HTML/电子邮件,因此任何此类性质的限制都不值得关注。

我在想的内联 base64 示例:

<img src="data:image/png;base64,xxxxxxxx==" alt="Some Image">
4

1 回答 1

3

似乎实现这一点的最简单方法是修改或扩展渲染扩展,如MSDN 文档中所述:

编写自定义渲染扩展

在决定创建自定义呈现扩展之前,您应该评估更简单的替代方案。你可以:

  1. 创建现有渲染扩展插件的修改版本。
  2. 通过为现有扩展指定设备信息设置来自定义呈现的输出。
  3. 通过将 XSL 转换 (XSLT) 与 XML 呈现格式的输出相结合,添加自定义格式和表示功能。

编写自定义呈现扩展插件既难学又难。呈现扩展插件通常必须支持所有可能的报表元素组合。报表对象模型非常广泛(您必须实现的类、接口、方法和属性数以百计),并且文档和示例还没有达到可以支持您完成具有挑战性的开发项目的水平。

如果必须以 Reporting Services 未包含的格式呈现报表,则可以编写自己的呈现扩展插件的托管代码实现。呈现扩展插件代码必须实现报表服务器所需的 IRenderingExtension 接口。每个由 Microsoft 实现并随 Reporting Services 提供的呈现扩展插件都使用一组通用接口。这可确保每个扩展都实现类似的功能,并降低报表服务器核心中呈现代码的复杂性。

于 2012-08-24T10:29:58.413 回答