我有一個帶有XRPictureBox組件的XtraReport。一個objectDataSource被饋送到包含數據的報表中。其中一個objectDataSource項名爲“ Signature”,其值是從Canvas組件派生的……它是數據URL格式的,base64編碼的(可能是PNG)位圖數據,如下所示:“ data:image / png; base64, i1234lkj123; k4; l1j34l1kj3j…”
在報表設計器中,我將其作爲URL表達式綁定到PictureBox,以指定objectDataSource中的[Signature]項目。
顯然,這是不可操作的。該圖像未顯示在報告中。
如果您的對象以二進制格式存儲圖像,則需要爲XRPictureBox.Image 屬性設置一個表達式 。如果您的對象存儲了圖像的相對或絕對路徑,請使用 XRPictureBox.ImageUrl 屬性。請注意,默認情況下,通過'file://' 協議指定的圖像URL 不會顯示在報告中。
圖像和其他報表數據存儲在SQL表中,並且實體框架用於創建報表的數據源。該圖像沒有文件地址。如原始帖子中所示,圖像以字符串格式存儲。那就是我想要綁定到XRPictureBox的東西。您是說如果將它綁定到XRPictureBox.Image屬性,它應該可以工作嗎?
重點解決方法:
我們的 XRPictureBox 控件不能綁定到將圖像存儲爲Base64 字符串的數據源字段 。有必要將此類字符串轉換爲字節數組。您可以通過以下方式在XRPictureBox.BeforePrint事件中執行此操作:
private void xrPictureBox1_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) {
string value = GetCurrentColumnValue("Image").ToString();
MemoryStream stream = new MemoryStream(Convert.FromBase64String(value));
(sender as XRPictureBox).Image = Image.FromStream(stream);
}
在附件中,您將找到顯示結果的示例視頻。請注意,在將字符串轉換爲字節數組之前,您需要刪除開頭的' data:image / png; base64, '子字符串。
官方支持永遠是最權威最有效的。