[英]Base64 image doesn't display on Render PDF from RDLC report
我正在嘗試在RDLC報告中使用參數( @CustomerSign
)顯示圖像(base64字符串) (我從報告中呈現PDF文件,我看到的是PDF文件)
我已經配置了如下圖像屬性:
選擇圖像源: Database
使用此字段:
=Convert.FromBase64String(Parameters!CustomerSign.Value)
使用此MIME類型: image/png
並傳遞參數:
ReportParameter CustomerSign = new ReportParameter("CustomerSign", obj.SignImage);
rptvw.LocalReport.SetParameters(CustomerSign);
但圖像顯示紅十字[X]
而不是圖像,並沒有給出錯誤!
可能是什么問題?
對圖像的支持非常有限, 這篇MSDN文章討論了你可以做什么。
從將問題嵌入報告中的問題看起來有點顯而易見。 但您可以指定外部dbase作為源。 請注意必須設置的EnableExternalImages屬性,如MSDN文章所述。 似乎要走的路,問題不夠詳細,您可能需要在代碼中提供包含所需圖像的合適表格。
首先,檢查Visual Studio輸出窗口。 調試時,您應該出現任何RDLC錯誤。
例如,我收到一條錯誤消息,說我傳遞了無效的base64字符串。
如果你看到:
警告:圖像“Image”的ImageData屬性值為“= Convert.From ...”,這不是有效的ImageData。 (rsInvalidDatabaseImageProperty)
這似乎意味着拋出異常,因此表達式沒有評估並作為原始文本傳遞(因此此消息表明原始文本不是有效的圖像數據)。 輸出窗口中的上一行應包含導致問題的實際錯誤。
在我的情況下,按照你正在使用的模式(謝謝),我的問題最終是我的數據庫中的base64以data:image/png;base64,
為前綴data:image/png;base64,
因為它是從html圖像元素中提取和寫入的。
要刪除該前綴,請將我的RDLC表達式轉換為:
=Convert.FromBase64String(CStr(Parameters!Base64.Value).Substring(22))
我建議從數據庫中提取一個64字符串並確認它確實可以用作圖像。 嘗試將其放入base64圖像查看器中(例如: https : //codebeautify.org/base64-to-image-converter )。 (雖然在我的情況下,我猜這不會有幫助,因為即使使用該前綴,該網站仍然有效。)
=System.Convert.FromBase64String(Parameters!Logo.Value)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.