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
У примітках до випуску не вказано прямі посилання для завантаження.