我們很高興宣布 GroupDocs.Conversion for .NET v26.10 已於 2026年10月 發佈。此版本著重於控制文件允許載入的內容:您的程式碼現在可以決定文件請求的每一個外部資源,且預設設定對於未知來源的文件是安全的。它還使轉換遵守請求的輸出格式與頁面選擇,修復了一系列轉換失敗與 .NET Framework 載入問題,並更新了一個安全敏感的相依性——共計 60 項功能、改進與錯誤修正。
重點
決定每個文件可以載入什麼
文件常常指向外部資源:CDN 上的圖片、樣式表、腳本、3D 紋理、XBRL 分類法。在 26.10 中,您可以看到每一個請求並在程式碼中決定如何處理。實作 IExternalResourceHandler 並透過載入選項的 ExternalResourceHandler 屬性設定它。處理程式會收到已填入預設決策的每個資源,您可以允許、跳過,或—對大多數格式—自行提供內容,例如從自訂快取中取得,從而根本不發出請求。
此處理程式在預設允許的基礎上,僅從受信任的主機載入 JPEG 圖片:
public class TrustedJpegHandler : IExternalResourceHandler
{
public void OnLoading(ExternalResourceLoadingArgs args)
{
Uri uri;
if (Uri.TryCreate(args.Uri, UriKind.Absolute, out uri)
&& uri.Scheme == Uri.UriSchemeHttps
&& string.Equals(uri.Host, "cdn.example.com", StringComparison.OrdinalIgnoreCase)
&& (uri.AbsolutePath.EndsWith(".jpg", StringComparison.OrdinalIgnoreCase)
|| uri.AbsolutePath.EndsWith(".jpeg", StringComparison.OrdinalIgnoreCase)))
{
args.Skipped = false;
}
}
}
WebLoadOptions loadOptions = new WebLoadOptions
{
ExternalResourceHandler = new TrustedJpegHandler()
};
using (Converter converter = new Converter("sample.html", (LoadContext loadContext) => loadOptions))
{
converter.Convert("converted.pdf", new PdfConvertOptions());
}
此處理程式適用於網頁、XML、文字處理、試算表、CSV 與 TSV、簡報、電子郵件、SVG、金融與 3D 文件的載入選項。
未受信任文件的安全預設
轉換使用者上傳的檔案時,不應讓伺服器讀取其他檔案或連向任意主機。使用預設設定,26.10:
- 只從文件自身資料夾載入本機檔案,絕不從 UNC 路徑載入;
- 不執行 HTML、MHTML、XHTML 與 SVG 文件中的腳本,且不請求腳本檔案;
- 對 SVG、3D 模型、XBRL、XSL-FO、Markdown 與電子郵件轉試算表的轉換套用相同規則。
當您的文件確實需要外部資源時,可依需求允許:在 WhitelistedResources 中列出受信任位置、使用處理程式逐一決定,或將 SkipExternalResources = false 設為可信文件。腳本僅在您於 WebLoadOptions 或 SvgLoadOptions 上設定 ExecuteScripts = true 時執行。無論設定為何,UNC 路徑與 javascript: 或 vbscript: 參照皆永不載入。
您要求的輸出
部分轉換曾忽略請求的部分內容。以前總是寫入 DOCX、XLSX、PPTX 或多影格 TIFF,無論目標格式為何;以及在電子郵件、網頁與多頁 TIFF 轉文字處理、Word Flat OPC 文件、以及 Project 轉 PS 與 PCL 時忽略頁面選擇。現在全部會產生符合轉換選項所要求的結果。加入浮水印時,非影像文件轉影像、CSV 與 TSV 轉影像、MHT 與 MHTML 頁面會正確渲染而非顯示 MIME 原始碼,且透明背景在 J2K、JP2、WMF 與 WMZ 輸出時不再變成黑色。
減少失敗的轉換
PostScript 檔案在 .NET Framework 上使用 run 或 file 運算子、PSD、PSB 與 AI 文件逐頁轉換、整個 CAD 圖紙轉 TeX、內嵌 SVG 的 XHTML、PDF、XPS 與 SVG 轉 EPUB、以及 Visio 與 SVG 轉試算表,現在皆能成功轉換。對於電子郵件、信箱與封存檔案,若附件無法轉換為目標格式,將不再導致整個轉換失敗;若內含文件無法載入,現在會透過 ConversionEvents.OnDocumentFailed 回報。
安全性、授權與 .NET Framework
- System.Security.Cryptography.Pkcs 更新至 8.0.2(在 .NET 10 上為 10.0.13),修補 CVE-2026-84008 與 CVE-2026-70162。
- .NET Framework 專案不再因載入 RuntimeInformation 或 ValueTuple 而失敗,且 EML、HTML 與 CAD 轉換在 .NET Framework 4.6.2 至 4.7.0 上不再失敗。
- 具有效授權的 WebP 轉換不再顯示試用標記。於評估模式下,3 頁限制亦適用於 SVG、SVGZ、PS 與 PCL 輸出。
此版本的新功能
- [Feature] 新增每個資源的回呼,以檢查、允許、拒絕或提供文件載入的外部資源
- [Improvement] 為 SVG 與 SVGZ 文件提供
SvgLoadOptions作為載入選項 - [Improvement] 以資料夾與位置為 OLM 與 NSF 項目命名,並避免在信箱項目名稱中使用 Windows 保留裝置名稱
- [Improvement] 將無法載入的封存、電子郵件與信箱項目回報給文件失敗處理程式,而非僅記錄
- [Bug] 即使已套用有效授權,從 Webp 轉換時仍會套用試用標記
- [Bug] 特定 VSDX 檔案轉換 – 文字超出框線
- [Bug] ODT 轉 PDF 時雙重刪除線文字未保留
- [Bug] VCF 轉 Excel 時的問題
- [Bug] 修正舊版 .NET Framework 4.7.1+ 專案使用 PackageReference 時載入 RuntimeInformation 失敗的問題
- [Bug] 修正 .NET Framework packages.config 專案載入 RuntimeInformation 或 ValueTuple 失敗的問題
- [Bug] 修正 .NET Framework 4.6.2 至 4.7.0 執行階段上 EML、HTML 與 CAD 轉換失敗的問題
- [Bug] 將 WordProcessing、Pdf 與 ProjectManagement 文件轉換為任何試算表格式時總是產生 XLSX
- [Bug] 將 WordProcessing、Pdf 與 Diagram 文件轉換為任何簡報格式時總是產生 PPTX
- [Bug] 修正 PST、OST 與 MBOX 轉換在缺少主旨的項目上失敗,以及 PST 便利貼轉換為無法閱讀的文字
- [Bug] 將單頁文件轉換為非 TIFF 影像格式時總是產生多影格 TIFF
- [Bug] [GroupDocs.Conversion for .NET] 更新 System.Security.Cryptography.Pkcs 至 8.0.2(CVE-2026-84008 / CVE-2026-70162)
- [Bug] 文字或影像浮水印在將非影像文件轉為影像時未套用
- [Bug] 透明頁面背景在轉換為 J2K、JP2、WMF 與 WMZ 時變成黑色
- [Bug] Word 為基礎的文件輸出 WMZ 時包含 gzipped PNG,影像輸出 EMZ 時被 gzip 兩次
- [Bug] MHT 與 MHTML 轉換為影像時顯示 MIME 原始碼而非頁面
- [Bug] Publisher 文件的文件資訊總是回報只有一頁
- [Bug] CSV 與 TSV 文件轉換時浮水印未套用
- [Bug] 僅從精確的白名單 URL 前綴與文件自身資料夾載入外部資源,絕不從 UNC 路徑載入
- [Bug] 修正 CAD、影像、圖表、DjVu、VCF 與 Email 轉 WordProcessing 時除 DOC 之外皆儲存為 DOCX
- [Bug] 修正 Email 轉 WordProcessing 時忽略頁面選擇與頁面範圍
- [Bug] 修正多頁 TIFF 轉 WordProcessing 時忽略頁面選擇
- [Bug] 在轉換 Markdown 與 CHM 文件時遵守 SkipExternalResources 與 WhitelistedResources
- [Bug] 在 email 轉試算表、試算表與頁面範圍轉換時遵守 SkipExternalResources 與 WhitelistedResources
- [Bug] 預設情況下,將 HTML 轉換為試算表時不會載入文件資料夾外的影像
- [Bug] 預設情況下,將 SVG 轉換為簡報、文字處理、試算表、XPS 或 EPS 時不會載入外部資源
- [Bug] 預設情況下,將 3D 模型的材質庫、紋理與緩衝區不會從模型資料夾外載入
- [Bug] 預設情況下,將 XML 透過 XSL-FO 樣式表轉換時不會載入外部影像
- [Bug] 修正 HTML 與 MHTML 轉 WordProcessing 時皆儲存為 DOCX 的問題
- [Bug] 預設情況下,不會從文件資料夾外載入 XBRL 與內嵌 XBRL 分類法
- [Bug] 轉換 HTML、XHTML 與 SVG 文件時停止執行腳本與下載腳本檔案
- [Bug] 修正 Web 轉 WordProcessing 時忽略頁面選擇與頁面範圍
- [Bug] 修正 Word Flat OPC 文件忽略頁面選擇與頁面範圍
- [Bug] 預設情況下,將 3D 文件轉換時不會嵌入模型資料夾外的紋理
- [Bug] 修正單流壓縮封存檔在轉換時缺少檔名的問題
- [Bug] 在允許外部資源時,修正 javascript: 與 vbscript: 參照被抓取的問題
- [Bug] 修正內嵌 SVG 的 XHTML 文件轉換失敗的問題
- [Bug] 修正 HTML 轉 HTML 時,因相對 CSS @import 無法載入而失敗的問題
- [Bug] 修正 Visio 與 SVG 轉試算表時,在空白頁面上失敗的問題
- [Bug] 修正 PDF、XPS 與 SVG 轉 EPUB 時,因超連結未覆蓋文字而失敗的問題
- [Bug] 修正電子郵件、信箱與封存轉換時,附件無法轉換為目標格式導致整體失敗的問題
- [Bug] 修正 PCL 轉換在 PDF 轉換後取代 Courier New 與其他已安裝字型的問題
- [Bug] GroupDocs.Conversion.LowCode 26.9.0:Linux 上的 DOCX 轉 PDF 忽略字型替換,使用字母順序第一個字型
- [Bug] 修正 GroupDocs.Conversion.LowCode 26.9.0 中的 XML 文件說明錯誤
- [Bug] 修正 .NET Framework 上使用 run 或 file 運算子的 PostScript 轉換失敗問題
- [Bug] 修正未授權的轉換在頁面描述語言格式上忽略試用頁數限制的問題
- [Bug] 修正逐頁轉換 PSD、PSB 與 Illustrator AI 文件時拋出例外的問題
- [Bug] 修正將影片轉換為音訊格式時,即使已設定影片連接器仍失敗的問題
- [Bug] 修正 ProjectManagement 轉 PS 與 PCL 時產生額外頁面且忽略頁面選擇的問題
- [Bug] 修正 ProjectManagement 轉 SVG 時寫入 UTF-16 卻缺少位元順序標記的問題
- [Bug] 修正 3D 轉 glTF 與 OBJ 時,將緩衝與材質檔寫入工作目錄的問題
- [Bug] 修正 MHT 與 MHTML 轉 PDF、XPS、TeX 與 WordProcessing 時顯示 MIME 原始碼而非頁面的問題
- [Bug] 修正整個 CAD 圖紙轉 TeX 時因 FileTypeNotSupported 而失敗的問題
- [Bug] 修正 PDL 與 XML/JSON 轉 PS 與 PCL 時加入額外頁面的問題
- [Bug] 修正 CAD 轉 PS 與 PCL 時僅保留多頁 DWF 圖紙的第一頁的問題
- [Bug] 修正 MBOX 轉換失敗或在訊息主旨看似檔名時遺失電子郵件標頭的問題
公開 API 變更
新增 API
IExternalResourceHandler與ExternalResourceLoadingArgs(Uri、Skipped、Data)位於GroupDocs.Conversion.Options.Load命名空間。ExternalResourceHandler屬於IResourceLoadingOptions以及實作該介面的載入選項。ExecuteScripts屬於WebLoadOptions與SvgLoadOptions。SkipExternalResources、WhitelistedResources與ExternalResourceHandler屬於FinanceLoadOptions與ThreeDLoadOptions,這兩者現在實作IResourceLoadingOptions。
⚠️ 升級前請檢查
-
外部資源: 依賴於資料夾外本機檔案、UNC 路徑或腳本的文件現在會在沒有這些資源的情況下轉換。請依照 未受信任文件的安全預設 中的說明允許您信任的資源。
-
白名單條目: 每個
WhitelistedResources條目必須是絕對 URI 前綴,例如https://cdn.example.com/assets/或file:///C:/assets/。類似jpg或example.com這類以前會在 URL 任意位置匹配的條目,現在會導致載入失敗並拋出InvalidLoadOptionsException。 -
XBRL 與內嵌 XBRL: 稅務檔案的分類法若位於資料夾外,或是從串流載入,現在會因
InvalidLoadOptionsException而無法載入。請以以下方式載入您信任的檔案:using (Converter converter = new Converter("filing.xbrl", (LoadContext loadContext) => new FinanceLoadOptions { SkipExternalResources = false })) { converter.Convert("filing.xlsx", new SpreadsheetConvertOptions()); } -
SVG 與 SVGZ: 若未提供載入選項,現在會使用
SvgLoadOptions,且PossibleConversions.LoadOptions會回傳SvgLoadOptions而非PageDescriptionLanguageLoadOptions。 -
輸出格式與頁面: 轉換現在會遵守請求的格式與頁面選擇,因此相同選項在不同版本間的輸出可能會不同。
PublisherDocumentInfo.PagesCount現在會回傳實際頁數。 -
自訂
IResourceLoadingOptions實作 必須加入新的ExternalResourceHandler屬性。
發行說明 列出所有變更與精確的例外訊息。
如何取得更新
NuGet
透過 NuGet 升級至最新的 GroupDocs.Conversion 套件:GroupDocs.Conversion 26.10.0
dotnet add package GroupDocs.Conversion --version 26.10.0
直接下載
從 GroupDocs.Conversion for .NET 26.10 頁面下載組件
資源
- 完整發行說明
- 文件說明
- 網路存取與資料隱私 – 程式庫何時存取網路以及如何離線執行
- 跳過載入外部資源 – 預設值、白名單條目、每資源處理程式與腳本
- 遷移說明 – 遷移至 26.10
- 載入選項針對不同文件類型
- GitHub 範例 – 受信任位置、每資源處理程式、受信任 HTML 與 XBRL 的腳本與遠端分類法
- Free Support Forum