2012-08-17 78 views
6

我有多個包含嵌入式圖像的SSRS 2008報告模板,並且這些模板在任何報告管理器預覽(使用呈現擴展HTML 4.0)時都如預期一樣可見。但是,我需要將這些報告作爲HTML電子郵件發送出去。如何在SSRS電子郵件報告中包含內聯(不鏈接)圖像?

我相信這裏的基本/最簡單的技術是將圖像作爲內聯base64字符串附加到HTML中的圖像標籤。有沒有一種方法可以在SSRS中自動執行此操作,或者實現此類或類似結果的最佳做法是什麼(即圖像作爲附件導致MHTML不可互操作而不是純HTML)?

電子郵件必須按原樣顯示,而不連接到任何外部存儲器(即發送方託管圖像不可行)。此外,我們不會使用SSRS本身來發送生成的HTML /電子郵件,因此任何這種性質的限制都不受關注。內聯的base64我在想

例子:

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

我是否正確理解您正在創建自己的定期發送郵件的.NET服務,並且希望使用HTML呈現的正文報告? – Jeroen 2012-08-17 14:38:19

+0

是的,報告的內容將作爲一個字節數組提供給某些第三方組件,它將實際發送郵件。該組件做了一些奇特的事情,這意味着SSRS電子郵件功能不被使用。 – allu 2012-08-17 15:24:06

回答

2

看來,實現這一目標的最簡單的方法就是修改或擴展呈現擴展插件只是一點點作爲MSDN documentation描述:

編寫自定義呈現擴展

在你決定創建一個自定義呈現擴展插件,Y ou應 評估更簡單的替代品。您可以:

  1. 創建現有渲染擴展的修改版本。
  2. 通過爲現有擴展指定設備信息設置 來自定義渲染輸出。
  3. 通過將XSL轉換(XSLT)與 的輸出組合成XML呈現格式,添加自定義格式和演示文稿 功能。

編寫自定義呈現擴展 很難做到的,以及學習..呈現擴展插件必須 通常支持報表元素的所有可能的組合。 報表對象模型非常廣泛(類,接口,方法, 和必須實現的屬性數量爲幾百個),而且文檔和示例尚未處於支持您通過具有挑戰性的開發項目的 的級別。

如果您必須以不包含在 Reporting Services中的格式呈現報表,則可以編寫自己的託管代碼實現 的呈現擴展。呈現擴展代碼必須實現 IRenderingExtension接口,這是報告 服務器所需的。由Microsoft和 附帶的每個渲染擴展都使用一組通用接口。這個 確保每個擴展實現可比較的功能並且降低報告 服務器的核心中的渲染代碼的複雜性。

+1

你是否能夠得到這個工作? – 2012-09-13 16:30:48

+0

不是直接沒有。這裏最簡單的方法是在轉換髮生後修改HTML(這意味着這些圖像在報表預覽中不可見),或者只是編寫實質上相同的自定義渲染擴展。 – allu 2012-12-12 20:31:33

相關問題