GroupDocs.Conversion for .NET 26.9 Release Notes

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

This release adds new GIS formats (KMZ and GeoJSON Text Sequence as sources, GML and OSM XML as targets) and new compression formats (Apple Archive as source and target, ALZ and WIM as sources), brings GIS conversion to .NET Framework, and converts presentations to a self-contained HTML slideshow. It also applies each frame’s own page size and resolution when converting multi-page TIFF, limits evaluation mode to 10 conversions per process, and removes the API members that were marked obsolete in earlier versions.

Full list of changes in this release

KeyCategorySummary
CONVERSIONNET-8488FeatureAdd WIM as a conversion source for compression documents
CONVERSIONNET-8491FeatureAdd Apple Archive (AAR) as a conversion source and target for compression documents
CONVERSIONNET-8494FeatureAdd ALZ as a conversion source for compression documents
CONVERSIONNET-8508FeatureAdd GeoJSON Text Sequence as a conversion source for GIS documents
CONVERSIONNET-8510FeatureAdd KMZ as a conversion source for GIS documents
CONVERSIONNET-8511FeatureAdd GIS conversion support to the net462 target framework
CONVERSIONNET-8512FeatureAdd GML and OSM XML as conversion targets for GIS documents
CONVERSIONNET-8529FeatureConvert a presentation to a self-contained HTML slideshow
CONVERSIONNET-8519ImprovementApply each frame’s own page size and resolution when converting multi-page TIFF to PDF
CONVERSIONNET-8520ImprovementApply the frame’s own page size and resolution when converting a multi-page TIFF page by page
CONVERSIONNET-8521ImprovementApply each frame’s own page size and resolution when converting a multi-page TIFF to tagged PDF
CONVERSIONNET-8523ImprovementLimit evaluation mode to 10 conversions per process
CONVERSIONNET-8561ImprovementRemove the obsolete converter listener, fluent handler stages and page size properties
CONVERSIONNET-8388BugPPTX to PDF: double underline and double strikethrough emit NaN coordinates on Linux
CONVERSIONNET-8515BugConverting a PDF with more than 4 pages fails in evaluation mode
CONVERSIONNET-8516BugTrial pages limit is not applied when converting PDF to Web
CONVERSIONNET-8522BugReturn the correct page count for a multi-page TIFF

Major Features

  • Expanded GIS conversion: KMZ and GeoJSON Text Sequence can now be loaded, and GML and OSM XML can now be produced, so every supported GIS source converts to GeoJSON, GML, GPX, KML, OSM and TopoJSON. GIS conversion is now also available on .NET Framework 4.6.2.

  • New compression formats: Apple Archive (AAR) can be read and written; ALZ and WIM archives can be read and converted to any supported archive format.

  • Presentation to HTML slideshow: a presentation can be converted to a single self-contained HTML file that plays as a slideshow with its transitions and animations. Fonts, images, audio, video, styles and the slideshow scripts are embedded in the file; the jQuery and anime.js libraries load from a CDN.

  • Accurate multi-page TIFF handling: each TIFF frame keeps its own page size and resolution when converting to PDF, to tagged PDF and page by page, and the correct page count is reported.

  • Evaluation limit: without a license, a process can run 10 conversions; the trial page limit is now also applied when converting PDF to Web.

Public API and backward incompatible changes

⚠️ Breaking changes

  • The members that were marked obsolete in earlier versions are removed; code that still uses them no longer compiles. See 1. Removed obsolete members.
  • In evaluation mode (no license applied), a process can run at most 10 conversions; the 11th throws EvaluationLimitReachedException. See 2. Evaluation-mode conversion limit.

1. Removed obsolete members

The members announced as obsolete in version 26.6 are removed:

RemovedReplacement
IConverterListener and ConverterSettings.ListenerConversionEvents OnConversionStarted / OnConversionProgress / OnConversionCompleted
ConverterSettings.OnConversionFailedConversionEvents.OnDocumentFailed
ConverterSettings.OnConversionByPageFailedConversionEvents.OnPageFailed
ConverterSettings.OnCompressionCompletedConversionEvents.OnCompressionCompleted
Fluent .OnCompressionCompleted(...) after .Compress(...) (IConversionCompressResultCompleted)FluentConverter.WithEvents(e => e.OnCompressionCompleted = ...)
Fluent interfaces IConversionHandlerSetup, IConversionHandlerFailed, IConversionHandlerCompletedIConversionHandlersStage
Fluent interfaces IConversionByPageHandlerSetup, IConversionByPageHandlerFailed, IConversionByPageHandlerCompletedIConversionByPageHandlersStage
CadConvertOptions.PageSize / PageWidth / PageHeightCadConvertOptions.SizeSettings (PageSizeOptions)
EBookConvertOptions.PageSize / PageWidth / PageHeightEBookConvertOptions.SizeSettings (PageSizeOptions)

In the fluent API, WithOptions(...) now returns IConversionHandlersStage (or IConversionByPageHandlersStage for page-by-page conversion). Chained calls such as .WithOptions(...).OnConversionCompleted(...).OnConversionFailed(...).Convert() compile unchanged.

Page size is now set only through SizeSettings:

var options = new CadConvertOptions
{
    SizeSettings = new PageSizeOptions { PageWidth = 800, PageHeight = 600 }
};

2. Evaluation-mode conversion limit

Without a valid license, a process can run at most 10 conversions. Every call to Converter.Convert(...) counts as one conversion — any overload, the fluent API, and calls that fail — regardless of how many output files it produces. Converter.GetDocumentInfo() and Converter.IsDocumentPasswordProtected() do not count. The count belongs to the running process; restarting the application starts it again. Once a valid license is applied, conversions are no longer counted or limited.

The 11th conversion throws EvaluationLimitReachedException (derived from GroupDocsConversionException) with the message:

You are using GroupDocs.Conversion in evaluation mode: the limit of 10 documents converted per process has been reached. Get a free 30-day temporary license to remove all evaluation limits: https://purchase.groupdocs.com/temporary-license/

Apply a License or a Metered key before the first conversion to remove the limit:

License license = new License();
license.SetLicense("GroupDocs.Conversion.lic");

using (Converter converter = new Converter("sample.docx"))
{
    converter.Convert("converted.pdf", new PdfConvertOptions());
}

Code that runs without a license can handle the limit:

try
{
    using (Converter converter = new Converter("sample.docx"))
    {
        converter.Convert("converted.pdf", new PdfConvertOptions());
    }
}
catch (EvaluationLimitReachedException ex)
{
    Console.WriteLine(ex.Message);
}

3. Slideshow output for presentation-to-HTML conversion

The new WebConvertOptions.SlideShow property (default false) converts a presentation — PPT, PPTX, PPTM, PPS, PPSX, PPSM, POT, POTX, POTM, ODP, OTP or FODP — to a single self-contained HTML file (Html or Htm) that plays as a slideshow. Existing conversions are unchanged unless SlideShow is set to true.

using (Converter converter = new Converter("presentation.pptx"))
{
    WebConvertOptions options = new WebConvertOptions { SlideShow = true };
    converter.Convert("slideshow.html", options);
}

With SlideShow = true, contradictory options throw InvalidConvertOptionsException before the conversion starts:

OptionMessage
UsePdf = trueWebConvertOptions.SlideShow cannot be combined with UsePdf: converting through PDF discards the slideshow.
Format is MHT or MHTMLWebConvertOptions.SlideShow supports only Html and Htm output, not mht. (or mhtml)
Watermark is setWebConvertOptions.SlideShow does not support watermarks.
Zoom other than 100WebConvertOptions.SlideShow does not support Zoom.

A slideshow is one navigable document, so the page-by-page Convert overloads throw System.NotSupportedException with the message Saving a presentation slideshow page by page is not supported.


4. New file types

TypeNew members
CompressionFileTypeAar, Alz, Wim
GisFileTypeGeoJsonSeq, Kmz
Document infoAarDocumentInfo, AlzDocumentInfo, WimDocumentInfo — each exposes the archive’s ContentTree
using (Converter converter = new Converter("assets.zip"))
{
    CompressionConvertOptions options = new CompressionConvertOptions { Format = CompressionFileType.Aar };
    converter.Convert("assets.aar", options);
}

Updated documentation