What’s new in this release

Key Category Summary
CONVERSIONNET-8437 Feature Додати формат файлу Drawio як ціль конвертації для документів Diagram
CONVERSIONNET-8442 Feature Додати формат файлу Mermaid MMD як джерело конвертації для документів Diagram
CONVERSIONNET-8445 Feature Додати CAB як ціль конвертації для документів стиснення
CONVERSIONNET-8459 Feature Додати CadLayoutScope до CadLoadOptions для конвертації простору моделі, паперових макетів або обох
CONVERSIONNET-8464 Feature Додати XAR як джерело та ціль конвертації для документів стиснення
CONVERSIONNET-8460 Improvement Конвертувати кожен CAD‑макет у власний слайд, лист Excel, сторінку Word, зображення HTML/MHTML та область SVG
CONVERSIONNET-8461 Improvement Називати відсутні макети, коли вибір CAD‑макету не збігається ні з одним
CONVERSIONNET-8462 Improvement Повідомляти про не встановлений LoadOptions.Format як відсутній, а не викидати виключення
CONVERSIONNET-8361 Bug Форми DOCX з контурами відображаються некоректно при конвертації у PDF
CONVERSIONNET-8396 Bug Конвертація файлу Presentation у PDF призводить до несумісних колонтитулів
CONVERSIONNET-8399 Bug Конвертація файлу Presentation з пошкодженими посиланнями у змісті призводить до GroupDocsConversionException
CONVERSIONNET-8426 Bug Конвертація DWG у PDF з урахуванням налаштувань орієнтації листа
CONVERSIONNET-8427 Bug Виправлено NullReferenceException при конвертації CAD‑малюнків без активного макету
CONVERSIONNET-8428 Bug Виправлено подвійне перетворення одиниць, коли для CAD‑конвертації встановлено явний розмір сторінки
CONVERSIONNET-8429 Bug Виправлено ігнорування CadLoadOptions при конвертації CAD у PDF/UA
CONVERSIONNET-8430 Bug Виправлено CadDocumentInfo, який повідомляв одну сторінку для CAD‑документів з кількома макетами
CONVERSIONNET-8444 Bug Проблема з мініатюрою у Linux‑оточенні для GroupDocs.Conversion
CONVERSIONNET-8467 Bug EML → PDF: виключення через несумісні типи одиниць

Public API changes

⚠️ Зворотньо несумісні зміни – наступні оновлення змінюють існуючу публічну поведінку. Відкоригуйте ваш код відповідно, щоб уникнути помилок під час виконання.

1. LoadOptions.Format тепер повертає null замість викидання виключення, коли формат не встановлений

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

Що змінилося
Читання властивості Format до того, як був призначений формат, раніше піднімало виключення. Тепер вона повертає null, що дозволяє просту перевірку на null.

Приклад міграції

var loadOptions = new SpreadsheetLoadOptions();

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

Рекомендації
Замініть будь‑який try/catch навколо loadOptions.Format на перевірку null. Не порівнюйте з FileType.Unknown; правильна перевірка – == null.


2. Точна перевірка CadLoadOptions.LayoutNames з докладним повідомленням про помилку

Affected class: CadLoadOptions

Що змінилося
LayoutNames тепер порівнюються точно (з урахуванням регістру) з іменами макетів у кресленні. Якщо жодне ім’я не збігається, конвертація завершується з InvalidLoadOptionsException, у повідомленні якого перераховані доступні макети та запит, що не збігся.

Приклад міграції

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);
}

Рекомендації

  • Переконайтеся, що імена макетів написані правильно і збігаються за регістром з тими, що у вихідному кресленні.
  • Якщо потрібен лише підмножина макетів, вкажіть точні імена; невідповідні записи ігноруються, а відповідні макети все одно рендеряться.

3. Багатосторінкові CAD‑малюнки тепер створюють один вихідний елемент на лист

Affected classes: Converter, PresentationConvertOptions, PdfConvertOptions

Що змінилося
Раніше конвертація креслення з кількома макетами простору паперу створювала одне сплющене зображення/слайд. Тепер конвертація створює окремі вихідні елементи (слайди, сторінки тощо) для кожного макету, розмір яких відповідає налаштуванням сторінки макету. Converter.GetDocumentInfo().PagesCount тепер відображає кількість створених елементів.

Приклад міграції – конвертація

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

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

Приклад міграції – запит кількості сторінок

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

Рекомендації

  • Оновіть подальшу обробку (наприклад, пагінацію UI, іменування файлів) для підтримки кількох вихідних файлів/сторінок.
  • Для креслень з одним листом поведінка залишається без змін.
  • Винятком є CAD → PDF/UA‑1, який і надалі створює одну теговану сторінку.

4. Нова властивість CadLoadOptions.LayoutScope для явного керування, які простори конвертуються

Affected class: CadLoadOptions

Що змінилося
LayoutScope дозволяє вказати, чи завантажувати Model, Layouts або Both (за замовчуванням).

  • Якщо встановлено LayoutNames, LayoutScope ігнорується, оскільки пріоритет мають явні імена.
  • Вибір області, яка не містить листів у кресленні, що має хоча б один лист, тепер піднімає InvalidLoadOptionsException замість тихого використання простору за замовчуванням.

Приклад міграції – конвертація лише паперових макетів

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());

Рекомендації

  • Існуючий код, який покладався на неявний вибір бекенду, продовжуватиме працювати, оскільки Both залишається значенням за замовчуванням.
  • Щоб виключити простір моделі або залишити лише його, встановіть LayoutScope у CadLayoutScope.Model або CadLayoutScope.Layouts відповідно.
  • Якщо раніше ви намагалися фільтрувати макети, передаючи порожній масив LayoutNames, замініть цей підхід на відповідне значення LayoutScope, щоб отримати чітку помилку, коли листи не вибрано.

New features

Advanced CAD Layout Control: Вибирайте конкретні CAD‑макети, конвертуйте кожен макет у власний слайд, лист Excel, сторінку Word, зображення HTML/MHTML або область SVG, і використовуйте CadLayoutScope для вибору простору моделі, паперових макетів або обох. Це забезпечує точний, по‑макетний вихід і враховує налаштування листа, такі як орієнтація та розмір сторінки.

Expanded Archive Support: Формати XAR і CAB тепер доступні як джерело та ціль для документів стиснення, що дозволяє безшовну конвертацію до і з цих типів архівів.

Modern Diagram Interoperability: Файли Mermaid MMD можна використовувати як джерела діаграм, а файли Drawio підтримуються як цілі конвертації, що спрощує інтеграцію сучасних інструментів діаграм у ваші конвертаційні процеси.

Critical Stability Improvements: Виправлено збої конвертації EML → PDF, контури форм DOCX, заголовки/колонтитули презентацій та пошкоджені посилання у змісті, генерацію мініатюр у Linux та обробку орієнтації листів DWG. Ці виправлення підвищують надійність у роботі з електронною поштою, офісними документами, презентаціями та CAD‑робочими процесами.

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

У примітках до випуску не вказано прямі посилання для завантаження.

Resources