GroupDocs.Conversion for .NET 26.8 Release Notes

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

This release reinforces CAD conversion with layout‑level selection, per‑layout output (slides, worksheets, pages, SVG, etc.), and multiple bug fixes that improve accuracy and option handling. It also expands format coverage by adding XAR and CAB as compression targets and Mermaid MMD and Drawio as diagram sources/targets, while delivering broader stability improvements across other document types.

Full list of changes in this release

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

Major 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.

Public API and backward incompatible 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.