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
| Key | Category | Summary |
|---|---|---|
| CONVERSIONNET-8687 | Feature | Add a per-resource callback to inspect, allow, deny or supply each external resource a document loads |
| CONVERSIONNET-8645 | Improvement | Offer SvgLoadOptions as the load options for SVG and SVGZ documents |
| CONVERSIONNET-8690 | Improvement | Name OLM and NSF items without a subject by folder and position and avoid reserved Windows device names in mailbox item names |
| CONVERSIONNET-8691 | Improvement | Report archive, email and mailbox items that cannot be loaded to the document-failed handler instead of only logging them |
| CONVERSIONNET-7664 | Bug | Trial badge is applied when converting from Webp even when a valid license is applied |
| CONVERSIONNET-8186 | Bug | Specific VSDX file conversion - text out of box bounds |
| CONVERSIONNET-8338 | Bug | Double strikethrough text not preserved in ODT to PDF conversion |
| CONVERSIONNET-8542 | Bug | VCF to Excel conversion problems |
| CONVERSIONNET-8571 | Bug | Fix conversions failing to load RuntimeInformation in old-style .NET Framework 4.7.1+ projects that use PackageReference |
| CONVERSIONNET-8572 | Bug | Fix conversions failing to load RuntimeInformation or ValueTuple in .NET Framework packages.config projects |
| CONVERSIONNET-8573 | Bug | Fix EML, HTML, and CAD conversions failing on .NET Framework 4.6.2 to 4.7.0 runtimes |
| CONVERSIONNET-8586 | Bug | Converting WordProcessing, Pdf and ProjectManagement documents to any spreadsheet format always produces XLSX |
| CONVERSIONNET-8591 | Bug | Converting WordProcessing, Pdf and Diagram documents to any presentation format always produces PPTX |
| CONVERSIONNET-8596 | Bug | Fix PST, OST and MBOX conversion failing on an item without a subject and PST sticky notes converting to unreadable text |
| CONVERSIONNET-8608 | Bug | Converting a single-page document to a non-TIFF image format always produces a multi-frame TIFF |
| CONVERSIONNET-8609 | Bug | [GroupDocs.Conversion for .NET] Update System.Security.Cryptography.Pkcs to 8.0.2 (CVE-2026-84008 / CVE-2026-70162) |
| CONVERSIONNET-8610 | Bug | Text or image watermark is not applied when converting non-image documents to images |
| CONVERSIONNET-8613 | Bug | Transparent page background turns black when converting to J2K, JP2, WMF and WMZ |
| CONVERSIONNET-8614 | Bug | WMZ output of Word-based documents holds a gzipped PNG and EMZ output of images is gzipped twice |
| CONVERSIONNET-8616 | Bug | MHT and MHTML pages converted to images show the MIME source instead of the page |
| CONVERSIONNET-8617 | Bug | Document info of a Publisher document always reports one page |
| CONVERSIONNET-8618 | Bug | Watermark is not applied when converting CSV and TSV documents |
| CONVERSIONNET-8625 | Bug | Load external resources only from exact whitelisted URL prefixes and the document’s own folder, never from UNC paths |
| CONVERSIONNET-8627 | Bug | Fix CAD, Image, Diagram, DjVu, VCF and Email to WordProcessing saving DOCX for every target except DOC |
| CONVERSIONNET-8628 | Bug | Fix Email to WordProcessing ignoring page selection and page range |
| CONVERSIONNET-8629 | Bug | Fix multi-page TIFF to WordProcessing ignoring page selection |
| CONVERSIONNET-8630 | Bug | Respect SkipExternalResources and WhitelistedResources when converting Markdown and CHM documents |
| CONVERSIONNET-8631 | Bug | Respect SkipExternalResources and WhitelistedResources in email-to-spreadsheet, spreadsheet and page-range conversions |
| CONVERSIONNET-8632 | Bug | Do not load images from outside the document’s folder by default when converting HTML to a spreadsheet |
| CONVERSIONNET-8633 | Bug | Do not load external resources by default when converting SVG to presentation, word processing, spreadsheet, XPS or EPS |
| CONVERSIONNET-8635 | Bug | Do not load 3D material libraries, textures and buffers from outside the model’s folder by default |
| CONVERSIONNET-8636 | Bug | Do not load external images by default when converting XML through an XSL-FO stylesheet |
| CONVERSIONNET-8637 | Bug | Fix HTML and MHTML to WordProcessing saving DOCX for every target |
| CONVERSIONNET-8642 | Bug | Do not load XBRL and inline XBRL taxonomies from outside the document’s folder by default |
| CONVERSIONNET-8647 | Bug | Stop running scripts and downloading script files when converting HTML, XHTML and SVG documents |
| CONVERSIONNET-8649 | Bug | Fix Web to WordProcessing ignoring page selection and page range |
| CONVERSIONNET-8650 | Bug | Fix Word Flat OPC documents ignoring page selection and page range |
| CONVERSIONNET-8653 | Bug | Do not embed textures from outside the model’s folder by default when converting 3D documents |
| CONVERSIONNET-8656 | Bug | Fix single-stream compression archives converting their file without a name |
| CONVERSIONNET-8665 | Bug | Fix javascript: and vbscript: references being fetched when external resources are allowed |
| CONVERSIONNET-8666 | Bug | Fix XHTML documents with inline SVG failing to convert |
| CONVERSIONNET-8667 | Bug | Fix HTML to HTML conversion failing when a relative CSS @import cannot be loaded |
| CONVERSIONNET-8668 | Bug | Fix Visio and SVG to spreadsheet conversion failing on a page with nothing to draw |
| CONVERSIONNET-8669 | Bug | Fix PDF, XPS and SVG to EPUB conversion failing on a hyperlink that covers no text |
| CONVERSIONNET-8670 | Bug | Fix email, mailbox and archive conversion failing on an attachment that cannot be converted to the target format |
| CONVERSIONNET-8671 | Bug | Fix PCL conversion replacing Courier New and other installed fonts after a PDF has been converted |
| CONVERSIONNET-8674 | Bug | GroupDocs.Conversion.LowCode 26.9.0: DOCX to PDF on Linux ignores font substitution and uses the alphabetically first font |
| CONVERSIONNET-8675 | Bug | Fix XML documentation errors in GroupDocs.Conversion.LowCode 26.9.0 |
| CONVERSIONNET-8676 | Bug | Fix PostScript conversion failing on .NET Framework when a document uses the run or file operator |
| CONVERSIONNET-8677 | Bug | Fix unlicensed conversions to page description language formats ignoring the trial page limit |
| CONVERSIONNET-8678 | Bug | Fix page-by-page conversion of PSD, PSB and Illustrator AI documents failing with an exception |
| CONVERSIONNET-8679 | Bug | Fix converting video to an audio format failing even when a video connector is set |
| CONVERSIONNET-8680 | Bug | Fix ProjectManagement to PS and PCL conversion producing extra pages and ignoring page selection |
| CONVERSIONNET-8682 | Bug | Fix ProjectManagement to SVG writing UTF-16 without a byte order mark |
| CONVERSIONNET-8683 | Bug | Fix 3D to glTF and OBJ conversion writing buffer and material files into the working directory |
| CONVERSIONNET-8684 | Bug | Fix MHT and MHTML conversions to PDF, XPS, TeX and WordProcessing showing the MIME source instead of the page |
| CONVERSIONNET-8685 | Bug | Fix CAD to TeX conversion of a whole drawing failing with FileTypeNotSupported |
| CONVERSIONNET-8688 | Bug | Fix PDL and XML/JSON to PS and PCL conversions adding extra pages |
| CONVERSIONNET-8689 | Bug | Fix CAD to PS and PCL conversions keeping only one page of multi-page DWF drawings |
| CONVERSIONNET-8692 | Bug | Fix 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
ExternalResourceHandlerproperty 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,
WhitelistedResourcesentries must be absolute URI prefixes, scripts in HTML, MHTML, XHTML and SVG documents run only withExecuteScripts, 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.
WhitelistedResourcesentries must be absolute URI prefixes; any other entry makes the load fail withInvalidLoadOptionsException. See 3. Whitelist entries are absolute URI prefixes.- An XBRL or inline XBRL document whose taxonomy lies outside its folder fails to load with
InvalidLoadOptionsExceptionunlessFinanceLoadOptions.SkipExternalResourcesisfalse. See 4. XBRL and inline XBRL taxonomies. IResourceLoadingOptionshas 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) andData(byte[]). - The
ExternalResourceHandlerproperty (IExternalResourceHandler, defaultnull) on IResourceLoadingOptions and onWebLoadOptions,XmlLoadOptions,WordProcessingLoadOptions,SpreadsheetLoadOptions,CsvLoadOptions,TsvLoadOptions,PresentationLoadOptions,EmailLoadOptions,SvgLoadOptions,FinanceLoadOptionsandThreeDLoadOptions.
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\shareand its other forms) are never loaded, even withSkipExternalResourcesset tofalse. - Scripts in HTML, MHTML, XHTML and SVG documents do not run, and no script file is requested. Set the new
ExecuteScriptsproperty of WebLoadOptions or SvgLoadOptions totrueto run the scripts of documents you trust. - SVG and SVGZ documents converted without load options use
SvgLoadOptions, which skips external resources.PossibleConversions.LoadOptionsfor these formats now returnsSvgLoadOptionsinstead ofPageDescriptionLanguageLoadOptions. - 3D models load material libraries, textures and buffers only from their own folder, and never from a remote location. ThreeDLoadOptions now has
SkipExternalResources,WhitelistedResourcesandExternalResourceHandler. - 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.OnDocumentFailedis 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, withFileType.Unknownas 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.PagesCountreturns 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
- Network access and data privacy – new: when the library accesses the network and how to run it offline
- Skip loading of external resources – the defaults, whitelist entries and their migration, the per-resource handler, scripts, XBRL and 3D
- Migration notes – migrating to 26.10
- Conversion events –
OnDocumentFailedfor contained documents that cannot be loaded - Load options for markup, XML, Word processing, presentation, spreadsheet, CSV, e-mail, SVG, finance, 3D and page description language documents – the
ExternalResourceHandler,ExecuteScripts,SkipExternalResourcesandWhitelistedResourcesoptions - Convert finance documents and Convert to finance formats with advanced options – XBRL documents with a remote taxonomy