There are 18 features, improvements, and bug fixes in this release. This update reinforces CAD conversion with layout‑level selection, per‑layout output (slides, worksheets, pages, SVG, etc.), and adds XAR and CAB as compression targets, as well as Mermaid MMD and Drawio as diagram sources/targets.

What’s new in this release

Key Category Summary
CONVERSIONNET-8437 Feature Add Drawio file format as a conversion target for Diagram documents
CONVERSIONNET-8442 Feature Add Mermaid MMD file format as a conversion source for Diagram documents
CONVERSIONNET-8445 Feature Add CAB as a conversion target for compression documents
CONVERSIONNET-8459 Feature Add CadLayoutScope to CadLoadOptions to convert model space, paper layouts, or both
CONVERSIONNET-8464 Feature Add XAR as a conversion source and target for compression documents
CONVERSIONNET-8460 Improvement Convert each CAD layout to its own slide, worksheet, Word page, HTML/MHTML image and SVG region
CONVERSIONNET-8461 Improvement Name the missing layouts when a CAD layout selection matches nothing
CONVERSIONNET-8462 Improvement Report an unset LoadOptions.Format as absent instead of throwing
CONVERSIONNET-8361 Bug DOCX Shapes with outlines are rendered incorrectly when converting to PDF
CONVERSIONNET-8396 Bug Converting Presentation file to PDF leads to inconsistent headers/footers
CONVERSIONNET-8399 Bug Converting Presentation file with broken summary links leads to GroupDocsConversionException
CONVERSIONNET-8426 Bug DWG file to PDF conversion per page sheet orientation settings
CONVERSIONNET-8427 Bug Fix NullReferenceException converting CAD drawings with no active layout
CONVERSIONNET-8428 Bug Fix double unit conversion when an explicit page size is set for CAD conversions
CONVERSIONNET-8429 Bug Fix CAD to PDF/UA ignoring CadLoadOptions
CONVERSIONNET-8430 Bug Fix CadDocumentInfo reporting one page for multi‑layout CAD documents
CONVERSIONNET-8444 Bug Issue with thumbnail in linux environment for GroupDocs.Conversion
CONVERSIONNET-8467 Bug EML to PDF: Incompatible unit types exception

Public API changes

⚠️ Backward Incompatible Changes – The following updates modify existing public behavior. Adjust your code accordingly to avoid runtime errors.

1. LoadOptions.Format now returns null instead of throwing when the format is unset

Affected classes: all 28 typed load‑options (e.g., SpreadsheetLoadOptions, PdfLoadOptions, CadLoadOptions, …)

What changed
Reading the Format property before a format is assigned used to raise an exception. It now returns null, allowing a simple null‑check.

Migration example

var loadOptions = new SpreadsheetLoadOptions();

if (loadOptions.Format == null)
{
    // New code path – previously unreachable because the getter threw.
}

Guidance
Replace any try/catch around loadOptions.Format with a null‑check. Do not compare against FileType.Unknown; the correct test is == null.


2. Exact‑match validation for CadLoadOptions.LayoutNames with detailed error reporting

Affected class: CadLoadOptions

What changed
LayoutNames are now matched exactly (case‑sensitive) against the drawing’s layout names. If none match, conversion fails with an InvalidLoadOptionsException that lists the available layouts and the mismatched request.

Migration example

using GroupDocs.Conversion.Exceptions;

try
{
    using var converter = new Converter("drawing.dwg",
        ctx => new CadLoadOptions { LayoutNames = new[] { "layout1" } });
    converter.Convert("out.pdf", new PdfConvertOptions());
}
catch (InvalidLoadOptionsException ex)
{
    // Example message:
    // "No layout name in CadLoadOptions.LayoutNames matches this drawing, which carries
    //  Model, Layout1, Layout2. Requested: layout1. Names are matched exactly, so a name
    //  that differs only in case is a different name."
    Console.WriteLine(ex.Message);
}

Guidance

  • Ensure layout names are spelled correctly and match the case used in the source drawing.
  • When only a subset of layouts is required, provide the exact names; mismatched entries are ignored, and matching layouts are still rendered.

3. Multi‑sheet CAD drawings now produce one output unit per sheet

Affected classes: Converter, PresentationConvertOptions, PdfConvertOptions

What changed
Previously, converting a drawing with multiple paper‑space layouts resulted in a single flattened image/slide. The conversion now creates separate output units (slides, pages, etc.) for each layout, sized according to the layout’s page setup. Converter.GetDocumentInfo().PagesCount reflects the number of generated units.

Migration example – conversion

using var converter = new Converter("multi-layout.dwg");

// Three sheets in, three slides out – previously one flattened slide.
converter.Convert("drawing.pptx", new PresentationConvertOptions());

Migration example – querying page count

using var converter = new Converter("multi-layout.dwg");
int sheets = converter.GetDocumentInfo().PagesCount; // Returns 3 for three layouts

Guidance

  • Adjust downstream processing (e.g., UI pagination, file naming) to handle multiple output files/pages.
  • For single‑sheet drawings the behavior remains unchanged.
  • The exception is CAD → PDF/UA‑1, which still renders a single tagged page.

4. New CadLoadOptions.LayoutScope property to explicitly control which spaces are converted

Affected class: CadLoadOptions

What changed
LayoutScope lets you specify whether to load Model, Layouts, or Both (default).

  • When LayoutNames is set, LayoutScope is ignored because explicit names take precedence.
  • Selecting a scope that yields no sheets for a drawing that contains at least one sheet now throws an InvalidLoadOptionsException instead of silently rendering the default spaces.

Migration example – convert only paper‑space layouts

using GroupDocs.Conversion;
using GroupDocs.Conversion.Options.Convert;
using GroupDocs.Conversion.Options.Load;

using var converter = new Converter("drawing.dwg",
    ctx => new CadLoadOptions { LayoutScope = CadLayoutScope.Layouts });
converter.Convert("layouts.pdf", new PdfConvertOptions());

Guidance

  • Existing code that relied on the implicit backend choice continues to work because Both remains the default.
  • To exclude the model space or include only it, set LayoutScope to CadLayoutScope.Model or CadLayoutScope.Layouts respectively.
  • If you previously attempted to filter layouts by providing an empty LayoutNames array, replace that pattern with an appropriate LayoutScope value to obtain a clear error when no sheets are selected.

New features

Advanced CAD Layout Control: Select specific CAD layouts, convert each layout to its own slide, worksheet, page, image, or SVG region, and choose model space, paper layouts, or both with CadLayoutScope. This delivers precise, per‑layout output and respects sheet‑specific settings such as orientation and page size.

Expanded Archive Support: XAR and CAB formats are now available as both source and target for compression documents, allowing seamless conversion to and from these archive types.

Modern Diagram Interoperability: Mermaid MMD files can be used as diagram sources, and Drawio files are supported as conversion targets, enabling easy integration of contemporary diagramming tools into your conversion pipelines.

Critical Stability Improvements: Fixed conversion failures for EML → PDF, DOCX shape outlines, presentation headers/footers and broken summary links, Linux thumbnail generation, and DWG sheet‑orientation handling. These fixes enhance reliability across email, office, presentation, and CAD workflows.

Code example

using var converter = new Converter("multi-layout.dwg");

// Three sheets in, three slides out – previously one flattened slide.
converter.Convert("drawing.pptx", new PresentationConvertOptions());

How to get the update

NuGet

Install-Package GroupDocs.Conversion -Version 26.8

GroupDocs.Conversion 26.8 on NuGet

Direct download

No direct download links are provided in the release notes.

Resources