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
LayoutNamesis set,LayoutScopeis 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
InvalidLoadOptionsExceptioninstead 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
LayoutScopetoCadLayoutScope.ModelorCadLayoutScope.Layoutsrespectively. - If you previously attempted to filter layouts by providing an empty
LayoutNamesarray, replace that pattern with an appropriateLayoutScopevalue 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.