了解縮略圖的工作原理在使用Stimulsoft Demo、Stimulsoft Server和Stimulsoft Cloud時非常有用。例如,您可以在此處查看縮略圖的實際效果 - 當側邊欄折疊時,將顯示縮略圖而不是資源列表。在本文中,我們將探討?Stimulsoft?產品中報表、儀表板和 PDF 表單的縮略圖(也稱為預覽)的作用。例如,縮略圖顯示在報表查看器中,允許用戶快速直觀地識別資源內容。
Stimulsoft Ultimate?(原Stimulsoft Reports.Ultimate)是用于創建報表和儀表板的通用工具集。該產品包括用于WinForms、ASP.NET、.NET Core、JavaScript、WPF、PHP、Java和其他環境的完整工具集。無需比較產品功能,Stimulsoft Ultimate包含了所有內容!
Stimulsoft Ultimate 最新版下載?
Stimulsoft 產品支持自動生成縮略圖,也可以使用專用的StiThumbnailHelper類手動控制生成過程。此外,您還可以使用自定義圖像代替自動生成的縮略圖。
?
自動生成縮略圖
將報告添加到以下位置時會自動生成縮略圖:
?
- Stimulsoft Server和Stimulsoft Cloud?– 首次添加到工作區。
- Stimulsoft Demo?– 首次添加到資源列表。
用戶無需執行任何其他操作。在這種情況下,會生成并保存一個縮略圖,并一直使用到縮略圖被刪除(或報表本身被刪除)。主要限制在于,縮略圖在報表修改時不會更新。要更新縮略圖,必須手動刪除并重新生成舊的縮略圖文件。
?
使用 StiThumbnailHelper 管理縮略圖
將 Stimulsoft 集成到自定義項目或應用程序中時,您可以使用StiThumbnailHelper類來控制縮略圖生成過程。
?
- GetThumbnailPath(string path)生成給定報告的.thumb縮略圖文件的路徑,同時考慮到操作系統的顯示縮放比例。
- SaveThumbnail(StiReport report, string path)將圖像字節數組(即第一個渲染報表頁面的縮略圖)返回到.thumb文件。此方法僅適用于已渲染的報表,或者您可以調用report.Render()。
- GetThumbnail(string path)從.thumb文件中返回指定報表縮略圖的字節數組。如果該文件不存在,則返回 null。
- GetThumbnailFromTemplateAsync(string path)從.mrt模板文件中異步檢索報告縮略圖。
- GetThumbnailFromTemplate(string path, bool skipImage = false)同步創建一個StiThumbnailReport對象,該對象包含路徑、報表名稱、儀表板標志(“IsDbs”)和圖像。如果之前保存過縮略圖,則加載該縮略圖。如果沒有保存,則加載報表、生成圖像并保存.thumb文件。此方法還會檢測數據源是儀表板還是常規報表。
這樣,可以根據需要隨時生成報告的縮略圖。
?
使用報告圖像屬性
每個報表、儀表板或 PDF 表單模板都可以在“報表圖像”屬性中包含自己的圖像。該圖像將用作縮略圖,而不是自動生成的預覽圖。這適用于 Stimulsoft Demo、Stimulsoft Server?和 Stimulsoft Cloud 等產品。例如,您可以設置一個靜態圖像,無論實際報表內容如何,該圖像都會顯示在界面中。注意:
圖像存儲在報告文件中。如果添加或引用較大的圖像文件,則會增加報告文件的整體大小。前面我們提到,自動生成的縮略圖只能通過刪除現有的預覽文件來更新。但是,當將 Stimulsoft 集成到您自己的應用程序中時,您可以動態生成新的縮略圖并將其直接分配給ReportImage屬性。
...
//Load report
var report = new StiReport;
var templatePath = "Reports\\MyReport.mrt";
report.Load(templatePath);// Generate a new thumbnail from the report template
var thumbnail = await Stimulsoft.Wizard.Wpf.Info.Helper.StiThumbnailHelper.GetThumbnailFromTemplateAsync(templatePath);// Convert byte array to System.Drawing.Image
using (var ms = new MemoryStream(thumbnail.Image))
{
// Assign generated thumbnail to the ReportImage property
report.ReportImage = System.Drawing.Image.FromStream(ms);
}// Call report in designer where ReportImage will be used as the report thumbnail
report.Design();
...
實際上,這意味著可以在運行時為報表生成新的縮略圖,并將其保存到“報表圖像”屬性中。這樣,您就可以在不刪除現有報表或其預覽文件的情況下更新縮略圖。
重點——動畫
生成縮略圖時需要考慮一個重要方面——動畫,尤其是在儀表板中。對于報表,縮略圖是從第一個渲染頁面生成的,該頁面用作預覽圖像。然而,儀表板沒有明確的渲染狀態,它們是實時運行的。這意味著,如果在縮略圖生成時,儀表板元素的動畫尚未完全完成,預覽可能無法準確反映實際內容。例如,圖表可能僅顯示部分渲染。為了確保縮略圖完全符合預期外觀,必須考慮動畫的持續時間。
Stimulsoft中的縮略圖提供了一種簡單有效的方法來直觀地呈現報表、儀表板和表單。它們可以自動或手動生成,甚至可以用自定義圖像替換。借助 StiThumbnailHelper類,開發人員可以使用靈活的工具來管理任何集成場景中的縮略圖。正確使用此功能可以改進導航,增強用戶界面,并豐富在應用程序中與報表交互的整體體驗。