GroupDocs.Conversion for .NET 26.10 Release Notes

There are 60 features, improvements, and bug fixes in this release.

This release puts external resources under your control: a new per-resource handler lets you inspect, allow, skip or supply each resource a document loads, whitelist entries are now absolute URI prefixes, local files outside the document’s folder and UNC paths are no longer loaded by default, and scripts run only when you enable them. It also fixes conversions that ignored the requested output format or page selection, several MHT, MHTML, PostScript, PCL, CAD, 3D, e-mail and archive conversion failures and .NET Framework loading problems, and moves to a patched System.Security.Cryptography.Pkcs.

Full list of changes in this release

KeyCategorySummary
CONVERSIONNET-8687FeatureAdd a per-resource callback to inspect, allow, deny or supply each external resource a document loads
CONVERSIONNET-8645ImprovementOffer SvgLoadOptions as the load options for SVG and SVGZ documents
CONVERSIONNET-8690ImprovementName OLM and NSF items without a subject by folder and position and avoid reserved Windows device names in mailbox item names
CONVERSIONNET-8691ImprovementReport archive, email and mailbox items that cannot be loaded to the document-failed handler instead of only logging them
CONVERSIONNET-7664BugTrial badge is applied when converting from Webp even when a valid license is applied
CONVERSIONNET-8186BugSpecific VSDX file conversion - text out of box bounds
CONVERSIONNET-8338BugDouble strikethrough text not preserved in ODT to PDF conversion
CONVERSIONNET-8542BugVCF to Excel conversion problems
CONVERSIONNET-8571BugFix conversions failing to load RuntimeInformation in old-style .NET Framework 4.7.1+ projects that use PackageReference
CONVERSIONNET-8572BugFix conversions failing to load RuntimeInformation or ValueTuple in .NET Framework packages.config projects
CONVERSIONNET-8573BugFix EML, HTML, and CAD conversions failing on .NET Framework 4.6.2 to 4.7.0 runtimes
CONVERSIONNET-8586BugConverting WordProcessing, Pdf and ProjectManagement documents to any spreadsheet format always produces XLSX
CONVERSIONNET-8591BugConverting WordProcessing, Pdf and Diagram documents to any presentation format always produces PPTX
CONVERSIONNET-8596BugFix PST, OST and MBOX conversion failing on an item without a subject and PST sticky notes converting to unreadable text
CONVERSIONNET-8608BugConverting a single-page document to a non-TIFF image format always produces a multi-frame TIFF
CONVERSIONNET-8609Bug[GroupDocs.Conversion for .NET] Update System.Security.Cryptography.Pkcs to 8.0.2 (CVE-2026-84008 / CVE-2026-70162)
CONVERSIONNET-8610BugText or image watermark is not applied when converting non-image documents to images
CONVERSIONNET-8613BugTransparent page background turns black when converting to J2K, JP2, WMF and WMZ
CONVERSIONNET-8614BugWMZ output of Word-based documents holds a gzipped PNG and EMZ output of images is gzipped twice
CONVERSIONNET-8616BugMHT and MHTML pages converted to images show the MIME source instead of the page
CONVERSIONNET-8617BugDocument info of a Publisher document always reports one page
CONVERSIONNET-8618BugWatermark is not applied when converting CSV and TSV documents
CONVERSIONNET-8625BugLoad external resources only from exact whitelisted URL prefixes and the document’s own folder, never from UNC paths
CONVERSIONNET-8627BugFix CAD, Image, Diagram, DjVu, VCF and Email to WordProcessing saving DOCX for every target except DOC
CONVERSIONNET-8628BugFix Email to WordProcessing ignoring page selection and page range
CONVERSIONNET-8629BugFix multi-page TIFF to WordProcessing ignoring page selection
CONVERSIONNET-8630BugRespect SkipExternalResources and WhitelistedResources when converting Markdown and CHM documents
CONVERSIONNET-8631BugRespect SkipExternalResources and WhitelistedResources in email-to-spreadsheet, spreadsheet and page-range conversions
CONVERSIONNET-8632BugDo not load images from outside the document’s folder by default when converting HTML to a spreadsheet
CONVERSIONNET-8633BugDo not load external resources by default when converting SVG to presentation, word processing, spreadsheet, XPS or EPS
CONVERSIONNET-8635BugDo not load 3D material libraries, textures and buffers from outside the model’s folder by default
CONVERSIONNET-8636BugDo not load external images by default when converting XML through an XSL-FO stylesheet
CONVERSIONNET-8637BugFix HTML and MHTML to WordProcessing saving DOCX for every target
CONVERSIONNET-8642BugDo not load XBRL and inline XBRL taxonomies from outside the document’s folder by default
CONVERSIONNET-8647BugStop running scripts and downloading script files when converting HTML, XHTML and SVG documents
CONVERSIONNET-8649BugFix Web to WordProcessing ignoring page selection and page range
CONVERSIONNET-8650BugFix Word Flat OPC documents ignoring page selection and page range
CONVERSIONNET-8653BugDo not embed textures from outside the model’s folder by default when converting 3D documents
CONVERSIONNET-8656BugFix single-stream compression archives converting their file without a name
CONVERSIONNET-8665BugFix javascript: and vbscript: references being fetched when external resources are allowed
CONVERSIONNET-8666BugFix XHTML documents with inline SVG failing to convert
CONVERSIONNET-8667BugFix HTML to HTML conversion failing when a relative CSS @import cannot be loaded
CONVERSIONNET-8668BugFix Visio and SVG to spreadsheet conversion failing on a page with nothing to draw
CONVERSIONNET-8669BugFix PDF, XPS and SVG to EPUB conversion failing on a hyperlink that covers no text
CONVERSIONNET-8670BugFix email, mailbox and archive conversion failing on an attachment that cannot be converted to the target format
CONVERSIONNET-8671BugFix PCL conversion replacing Courier New and other installed fonts after a PDF has been converted
CONVERSIONNET-8674BugGroupDocs.Conversion.LowCode 26.9.0: DOCX to PDF on Linux ignores font substitution and uses the alphabetically first font
CONVERSIONNET-8675BugFix XML documentation errors in GroupDocs.Conversion.LowCode 26.9.0
CONVERSIONNET-8676BugFix PostScript conversion failing on .NET Framework when a document uses the run or file operator
CONVERSIONNET-8677BugFix unlicensed conversions to page description language formats ignoring the trial page limit
CONVERSIONNET-8678BugFix page-by-page conversion of PSD, PSB and Illustrator AI documents failing with an exception
CONVERSIONNET-8679BugFix converting video to an audio format failing even when a video connector is set
CONVERSIONNET-8680BugFix ProjectManagement to PS and PCL conversion producing extra pages and ignoring page selection
CONVERSIONNET-8682BugFix ProjectManagement to SVG writing UTF-16 without a byte order mark
CONVERSIONNET-8683BugFix 3D to glTF and OBJ conversion writing buffer and material files into the working directory
CONVERSIONNET-8684BugFix MHT and MHTML conversions to PDF, XPS, TeX and WordProcessing showing the MIME source instead of the page
CONVERSIONNET-8685BugFix CAD to TeX conversion of a whole drawing failing with FileTypeNotSupported
CONVERSIONNET-8688BugFix PDL and XML/JSON to PS and PCL conversions adding extra pages
CONVERSIONNET-8689BugFix CAD to PS and PCL conversions keeping only one page of multi-page DWF drawings
CONVERSIONNET-8692BugFix MBOX conversion failing or dropping the email headers when a message subject looks like a file name

Major Features

  • Per-resource control of external resources: a new IExternalResourceHandler, set through the ExternalResourceHandler property of the load options, is called for each resource a document asks to load and can allow it, skip it or supply its content.

  • Stricter defaults for external resources: local files outside the document’s folder and UNC paths are no longer loaded, WhitelistedResources entries must be absolute URI prefixes, scripts in HTML, MHTML, XHTML and SVG documents run only with ExecuteScripts, and SVG, 3D, XBRL, XSL-FO, Markdown and e-mail-to-spreadsheet conversions now follow the same rules.

  • Requested output formats and pages: conversions that always wrote DOCX, XLSX, PPTX or a multi-frame TIFF now write the requested format, and page selection now works for e-mail, web and multi-page TIFF to word-processing conversions, for Word Flat OPC documents, and for Project to PS and PCL.

  • Fewer failed conversions: MHT and MHTML pages render instead of their MIME source, VCF files keep every contact, and PostScript with the run or file operator on .NET Framework, PSD, PSB and AI documents page by page, whole CAD drawings to TeX, XHTML with inline SVG, PDF, XPS and SVG to EPUB, Visio and SVG to spreadsheet, and e-mail, mailbox and archive files with problem items no longer fail.

  • Evaluation and licensing: WebP conversions with a valid license carry no trial badge, and the 3-page evaluation limit now also applies to SVG, SVGZ, PS and PCL output.

  • Security and .NET Framework: System.Security.Cryptography.Pkcs is raised to 8.0.2 (10.0.13 on .NET 10) to address CVE-2026-84008 and CVE-2026-70162, and conversions no longer fail to load RuntimeInformation or ValueTuple in .NET Framework projects or fail on .NET Framework 4.6.2 to 4.7.0.

Public API and backward incompatible changes

⚠️ Breaking changes

  • External resources are handled more strictly by default: local files outside the document’s folder and UNC paths are no longer loaded, and scripts no longer run. See 2. Stricter defaults for external resources.
  • WhitelistedResources entries must be absolute URI prefixes; any other entry makes the load fail with InvalidLoadOptionsException. See 3. Whitelist entries are absolute URI prefixes.
  • An XBRL or inline XBRL document whose taxonomy lies outside its folder fails to load with InvalidLoadOptionsException unless FinanceLoadOptions.SkipExternalResources is false. See 4. XBRL and inline XBRL taxonomies.
  • IResourceLoadingOptions has a new member, ExternalResourceHandler; only code that implements the interface itself must add it.

1. Per-resource handler for external resources

New in the GroupDocs.Conversion.Options.Load namespace:

  • IExternalResourceHandler with the method void OnLoading(ExternalResourceLoadingArgs args).
  • ExternalResourceLoadingArgs with the properties Uri (string), Skipped (bool) and Data (byte[]).
  • The ExternalResourceHandler property (IExternalResourceHandler, default null) on IResourceLoadingOptions and on WebLoadOptions, XmlLoadOptions, WordProcessingLoadOptions, SpreadsheetLoadOptions, CsvLoadOptions, TsvLoadOptions, PresentationLoadOptions, EmailLoadOptions, SvgLoadOptions, FinanceLoadOptions and ThreeDLoadOptions.

The handler is called for each resource the document asks to load, with the decision of SkipExternalResources and WhitelistedResources in Skipped. It can set Skipped to load or skip the resource, or set Data to supply the resource’s content. UNC paths and javascript: and vbscript: references never load, whatever the handler sets. If the handler throws, the operation throws GroupDocsConversionException with your exception as InnerException and the message:

The external resource handler failed while a resource was being loaded: <message of your exception>

The following handler loads JPEG images from one trusted host in addition to what the defaults allow:

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());
}

2. Stricter defaults for external resources

With SkipExternalResources left at its default true:

  • Local files outside the document’s folder are no longer loaded. Earlier versions loaded local files while other external resources were denied.
  • UNC paths (\\host\share and its other forms) are never loaded, even with SkipExternalResources set to false.
  • Scripts in HTML, MHTML, XHTML and SVG documents do not run, and no script file is requested. Set the new ExecuteScripts property of WebLoadOptions or SvgLoadOptions to true to run the scripts of documents you trust.
  • SVG and SVGZ documents converted without load options use SvgLoadOptions, which skips external resources. PossibleConversions.LoadOptions for these formats now returns SvgLoadOptions instead of PageDescriptionLanguageLoadOptions.
  • 3D models load material libraries, textures and buffers only from their own folder, and never from a remote location. ThreeDLoadOptions now has SkipExternalResources, WhitelistedResources and ExternalResourceHandler.
  • XML converted through an XSL-FO stylesheet no longer loads external images, Markdown documents no longer fetch remote images, and HTML and e-mail converted to spreadsheet formats no longer embed images from outside the document’s folder.

3. Whitelist entries are absolute URI prefixes

Each WhitelistedResources entry is now the absolute URI prefix of a trusted location, such as https://cdn.example.com/assets/ or file:///C:/assets/. Earlier versions matched an entry wherever it appeared in the URL, so entries such as jpg or example.com were accepted. An entry that is not an absolute URI prefix makes the load fail with InvalidLoadOptionsException, whatever SkipExternalResources is set to:

Whitelisted resource '<entry>' is not valid. Expected an absolute URI prefix without a query, fragment or encoded '/', '\' or '.', such as 'https://cdn.example.com/assets/' or 'file:///C:/assets/'.

4. XBRL and inline XBRL taxonomies

FinanceLoadOptions now implements IResourceLoadingOptions and has SkipExternalResources (default true), WhitelistedResources and ExternalResourceHandler. While external resources are denied, an XBRL or inline XBRL document loads only when every taxonomy file it references is inside its own folder and the document is converted from a file path. Otherwise the load fails with InvalidLoadOptionsException, for example:

The XBRL document references '<reference>', which is outside the document's folder. External resources are denied, so the document cannot be loaded. Set FinanceLoadOptions.SkipExternalResources to false to load it.

For a document loaded from a stream:

The XBRL document references '<reference>'. It was loaded from a stream, so it has no folder to load local files from, and external resources are denied. Set FinanceLoadOptions.SkipExternalResources to false to load it.

To convert a filing that references a remote taxonomy:

using (Converter converter = new Converter("filing.xbrl", (LoadContext loadContext) => new FinanceLoadOptions { SkipExternalResources = false }))
{
    converter.Convert("filing.xlsx", new SpreadsheetConvertOptions());
}

5. Other behaviour changes

  • ConversionEvents.OnDocumentFailed is now also called once for each contained document that cannot be loaded: an archive entry, an e-mail attachment, a mailbox item, or a file or OLE object embedded in a PDF, Word, Excel or PowerPoint document whose contents are converted. The context carries the item’s name, hierarchy level and item index, with FileType.Unknown as its source and converted format. The item is skipped, as before.
  • In evaluation mode, the 3-page limit now also applies to SVG, SVGZ, PS and PCL output.
  • PublisherDocumentInfo.PagesCount returns the number of pages of the Publisher document instead of always 1.
  • Conversions write the requested format instead of always DOCX, XLSX, PPTX or a multi-frame TIFF, and honour page selection where they ignored it, so the output can differ from earlier versions for the same options.
  • Transparent page backgrounds converted to J2K, JP2, WMF and WMZ are no longer black.
  • The NuGet packages depend on System.Security.Cryptography.Pkcs 8.0.2 (10.0.13 for .NET 10), and the .NET 6 packages and GroupDocs.Conversion.LowCode also on System.Formats.Asn1 8.0.2.

Updated documentation