翻譯|行業(yè)資訊|編輯:董玉霞|2022-09-21 16:45:07.790|閱讀 229 次
概述:要創(chuàng)建高質(zhì)量的報告并將其正確導(dǎo)出為不同的格式(PDF、Word、Excel 等),必須使用圖形引擎。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
要創(chuàng)建高質(zhì)量的報告并將其正確導(dǎo)出為不同的格式(PDF、Word、Excel 等),必須使用圖形引擎。從 .NET Framework 的最早版本開始,Microsoft 就將 GDI+ 及其包裝器用作 System.Drawing 庫的一部分。FastReport.NET長期以來一直使用相同的庫來創(chuàng)建美觀實用的報表。Mono 團隊為 Unix 系統(tǒng)開發(fā)了他們的 GDI+ 版本:libgdiplus,供 System.Drawing.Common 使用。但是,這種方法并不完美。
與 Windows 不同,System.Drawing.Common 非常特別地適用于其他平臺。我們從用戶那里收到的這些常見問題包括不正確的渲染文本大小、缺乏 RTL 語言支持、不正確的字間距、句子中的斷字錯誤、缺乏 ARM 處理器支持以及 libgdiplus 普遍不穩(wěn)定(“內(nèi)存不足”,在在多線程配置中工作)。
您可以通過從支持 Pango/Cairo的 Mono 存儲庫手動重建 libgdiplus 來解決其中一些問題 。無論如何,這很不方便,尤其是在您的應(yīng)用程序使用容器化的情況下。其他問題會影響除 Windows 之外的所有操作系統(tǒng)上的報告導(dǎo)出質(zhì)量。
結(jié)果,微軟正式放棄了對非 Windows 平臺上的 System.Drawing.Common 的支持。這是他們的帖子:“重大變化:System.Drawing.Common 僅在 Windows 上受支持 - .NET | 微軟文檔“。之后,我們的用戶開始積極詢問如何在 Linux 或 macOS 上使用 FastReport 的強大功能。
開發(fā)了一個特殊版本的 FastReport.Core,它使用 Skia 作為圖形引擎及其 .NET 的包裝器 - SkiaSharp,稱為 FastReport.Core.Skia。FastReport.Core.Skia 和 FastReport.Web.Skia 包在我們的私有 NuGet 服務(wù)器上可用。
如果您在 Linux 下使用 libgdiplus 渲染文本時遇到問題,我們強烈建議您嘗試 FastReport.Core.Skia。要在您的應(yīng)用程序中使用它,只需更改包名稱 FastReport.Core -> FastReport.Core.Skia,然后在 Linux 上添加以下包(在 Windows 和 macOS 上,會自動添加必要的包):
現(xiàn)在讓我們在 Linux/macOS 上比較 FastReport.Core 與 libgdiplus 和 FastReport.Core.Skia。
首先我們來看看在Linux Ubuntu 20.04上導(dǎo)出為HTML格式后文本長度的錯誤計算。在下面的圖片中,您可以看到帶有 Pango 的 libgdiplus,即使從源代碼重建,也不能正確顯示第一行的結(jié)尾,丟棄一些信息,Skia 工作正常。
Linux、libgdiplus + Pango 上不正確的 HTML 導(dǎo)出
在 Linux、SkiaSharp 上正確的 HTML 導(dǎo)出
Linux 上 RtL 文本的 PDF 導(dǎo)出不正確,帶有 Pango 的 libgdiplus 將所有文本寫入 1 列 8 頁
在 Linux、SkiaSharp 上正確導(dǎo)出 RtL 文本的 PDF 我們可以看到類似的情況,它們的正確顯示需要特殊的字體:
Linux 上的文本 PDF 導(dǎo)出不正確,使用 Pango 的 libgdiplus
更正 Linux、Skia 上文本的 PDF 導(dǎo)出。為每個文本自動選擇適當(dāng)?shù)淖煮w。
在以前不受支持的場景中嘗試 FastReport.Core.Skia:在具有 ARM 處理器的設(shè)備上工作,例如 Apple M1。讓我們創(chuàng)建一個 .NET 6 控制臺應(yīng)用程序(因為只有 .NET 6 原生支持 macOS 的 ARM 架構(gòu))并從我們的演示中導(dǎo)出 Simple List.frx 報告。
System.Drawing.Common 從 7.0 版本開始將完全停止支持非 Windows 系統(tǒng),因此上面給出的 libgdiplus 示例很快將完全不起作用。
此版本的 FastReport.Core 不能與 System.Drawing API 一起使用:在某些 .NET Framework 項目、NET Core 3.1/NET 5+ WindowsForms 項目以及具有 System.Drawing.Common 的項目中,由于此修改的具體情況。
以上就是FastReport Mono V2022.3新版本更新的重要內(nèi)容,更多相關(guān)內(nèi)容會在后續(xù)為大家一一介紹,大家可以點擊FastReport Mono使用教程查看哦! 更多產(chǎn)品授權(quán)信息點擊查看FastReport Mono價格,或者咨詢慧都在線客服。
FastReport Mono技術(shù)QQ群:536197826 歡迎進群一起討論
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn