Latest release (July 2025)

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

Full list of changes in this release

KeyCategorySummary
CONVERSIONNET-7808FeatureSupport for PDF/A-4, PDF/A-4E and PDF/A-4F
CONVERSIONNET-7836FeatureAdd support for conversion from and to Lz4 format
CONVERSIONNET-7853FeatureIntroduce conversion handler to handle conversion errors
CONVERSIONNET-7842EnhancementNew property ScanFontDirectoriesRecursively in ConverterSettings
CONVERSIONNET-7876EnhancementImprove Html/Mhtml to Image conversion
CONVERSIONNET-7861BugSingle sheet spreadsheets are converted to XPS instead of image when target format is not TIFF
CONVERSIONNET-7860BugIncorrect image rendering after converting .xlsx to .png on macOS/Linux
CONVERSIONNET-7804BugSvg to Jpg: empty image in result.
CONVERSIONNET-7862BugSpreadsheet to image conversion is incorrect in trial mode when specific pages are selected
CONVERSIONNET-7716BugAspose.Slides.Cross-platform support for Linux Arm64
CONVERSIONNET-7801BugNumber of pages are ignored
CONVERSIONNET-7835BugError when converting single page from PDF or PPT document to image
CONVERSIONNET-7841BugCould not load file or assembly ‘System.Drawing.Common, Version=4.0.0.2’
CONVERSIONNET-7847BugRegression: MSG to PDF: Images inside body not converted

Major Features

  • PDF/A-4 Support: Added support for converting to PDF/A-4, PDF/A-4e, and PDF/A-4f formats, enabling compliance with the latest archival standards.

  • LZ4 Format Conversion: Introduced support for converting from and to LZ4-compressed files, expanding compatibility with modern compression formats.

  • Custom Conversion Handlers: Added a new conversion handler mechanism to allow custom handling of conversion errors.

  • Improved Font Scanning: A new ScanFontDirectoriesRecursively property in ConverterSettings enables deeper and more flexible font discovery.

  • Enhanced HTML to Image Conversion: Improved rendering quality for HTML and MHTML content when converted to image formats.

  • Key Bug Fixes: Fixed issues with spreadsheet-to-image conversion on macOS/Linux, SVG to JPG rendering, incorrect format output for single-sheet spreadsheets, trial mode rendering inconsistencies, missing page counts, single-page rendering errors from PDF and PPT, and cross-platform support for Linux ARM64. Also resolved assembly loading errors related to System.Drawing.Common.

Public API and backward incompatible changes

  1. Introduced a new ScanFontDirectoriesRecursively property into ConverterSettings class. If true, the converter will scan font directories recursively (default: true).

  2. Added PdfA_4, PdfA_4E, PdfA_4F to PdfFormats class

  3. Error handling customization

    Starting with version 25.7, you can specify a custom error handler to manage conversion errors. If an error occurs during conversion and an error handler is set, the handler will be invoked, and the conversion process will not throw an exception by default. This allows you to process or log errors as needed, or re-throw the exception if required.

    If no error handler is provided, the existing behavior remains unchanged: conversion errors will result in an exception being thrown.

    Key points:

    • The custom error handler is optional.
    • If set, errors are passed to your handler instead of throwing exceptions.
    • If not set, conversion errors throw exceptions by default (legacy behavior).

    Code samples:

    Classic syntax:

    var converterSettings = new ConverterSettings
    {
        OnConversionFailed = (context, exception) =>
        {
            // Handle conversion failure using the provided context and exception
        }
    };
    
    using (var converter = new Converter("sample.docx", () => converterSettings))
    {
        var convertOptions = new PdfConvertOptions
        {
            Format = PdfFileType.Pdf
        };
        converter.Convert("result.pdf", convertOptions);
    }
    

    Fluent syntax:

    FluentConverter.Load("source.docx")
        .ConvertTo("result.pdf")
        .WithOptions(new PdfConvertOptions())
        .OnConversionFailed((context, exception) =>
        {
            // Handle conversion failure using the provided context and exception
        })
        .Convert();