如何在SSRS电子邮件报告中包含内联(未链接)图像?

时间:2012-08-17 06:52:23

标签: html reporting-services

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

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

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

内联base64的例子我在想:

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

1 个答案:

答案 0 :(得分:3)

看来,实现此目的的最简单方法是稍微修改或扩展渲染扩展,如MSDN documentation中所述:

  

编写自定义渲染扩展程序

     

在决定创建自定义呈现扩展程序之前,您应该这样做   评估更简单的替代品。你可以:

     
      
  1. 创建现有渲染扩展程序的修改版本。
  2.   
  3. 通过指定设备信息设置自定义渲染输出   对于现有扩展。
  4.   
  5. 添加自定义格式和演示文稿   通过将XSL转换(XSLT)与输出结合起来的功能   XML呈现格式。
  6.         

    编写自定义渲染扩展名是   难以做到以及学习..渲染扩展必须   通常支持所有可能的报表元素组合。该   报表对象模型很广泛(类,接口,方法,   和必须实现数百个数字的属性,和   文档和样本尚未达到可以支持的水平   通过一个具有挑战性的开发项目。

         

    如果必须以未包含的格式呈现报告   在Reporting Services中,您可以编写自己的托管代码实现   渲染扩展的。渲染扩展代码必须实现   IRenderingExtension接口,该报告是必需的   服务器。每个渲染扩展由Microsoft和   Reporting Services随附的一组通用接口。这个   确保每个扩展实现可比较的功能   降低了报告核心中呈现代码的复杂性   服务器