Мы рады объявить о выпуске GroupDocs.Conversion for .NET 25.10, доступного с октября 2025.
Этот минорный релиз добавляет набор улучшений макета страниц, новые возможности параметров загрузки и несколько критических исправлений ошибок. Наиболее заметным изменением является рефакторинг публичного API, который группирует настройки полей и размеров в отдельные объекты, повышая согласованность всех параметров конверсии.

Что нового в этом релизе

ID Feature
CONVERSIONNET‑8032 Добавлена поддержка установки размера страницы, полей и ориентации в EmailLoadOptions перед конвертацией.
CONVERSIONNET‑8013 Добавлена поддержка установки полей страницы в SpreadsheetOptions перед конвертацией.
CONVERSIONNET‑8012 Добавлена поддержка установки размера страницы в SpreadsheetOptions перед конвертацией.
CONVERSIONNET‑8009 Добавлена поддержка установки размера страницы в TxtLoadOptions и WordProcessingLoadOptions перед конвертацией.
CONVERSIONNET‑8008 Добавлена поддержка установки полей страницы в TxtLoadOptions и WordProcessingLoadOptions перед конвертацией.

Эти добавления позволяют точно настроить макет исходного документа до шага конверсии, предоставляя более строгий контроль над внешним видом получаемых файлов.

Рефакторинг API – Параметры макета страницы (Изменения, ломающие совместимость)

⚠️ BREAKING CHANGE (effective v26.1) – Двадцать отдельных свойств полей/размеров устарели и будут удалены в следующей мажорной версии.
Новая модель вводит два вспомогательных объекта, заменяющих старые скалярные свойства:

Затронутый класс Устаревшие свойства Замена
PdfConvertOptions (7) MarginTop, MarginBottom, MarginLeft, MarginRightMarginSettingsPageSize, PageWidth, PageHeightSizeSettings MarginSettings (PageMarginOptions), SizeSettings (PageSizeOptions)
WordProcessingConvertOptions (7) То же, что и PDF То же, что и PDF
EBookConvertOptions (3) PageSize, PageWidth, PageHeightSizeSettings SizeSettings
CadConvertOptions (3) PageSize, PageWidth, PageHeightSizeSettings SizeSettings

Новые вспомогательные классы

public class PageMarginOptions
{
    public float? Top { get; set; }
    public float? Bottom { get; set; }
    public float? Left { get; set; }
    public float? Right { get; set; }
}
public sealed class PageSizeOptions
{
    public PageSize PageSize { get; set; }
    public float PageWidth { get; set; }   // Setting this forces PageSize = PageSize.Custom
    public float PageHeight { get; set; }  // Setting this forces PageSize = PageSize.Custom
}

Руководство по миграции

Миграция полей страницы

Старый подход (устарел)

var options = new PdfConvertOptions
{
    MarginTop    = 10,
    MarginBottom = 10,
    MarginLeft   = 20,
    MarginRight  = 20
};

Новый подход (рекомендовано)

var options = new PdfConvertOptions
{
    MarginSettings = new PageMarginOptions
    {
        Top    = 10,
        Bottom = 10,
        Left   = 20,
        Right  = 20
    }
};

Миграция настроек размера страницы

Старый подход (устарел)

// Predefined size
var pdfOptions = new PdfConvertOptions
{
    PageSize = PageSize.A4
};

// Custom dimensions
var wpOptions = new WordProcessingConvertOptions
{
    PageWidth  = 612, // points (Letter width)
    PageHeight = 792  // points (Letter height)
};

Новый подход (рекомендовано)

// Predefined size
var pdfOptions = new PdfConvertOptions
{
    SizeSettings = new PageSizeOptions
    {
        PageSize = PageSize.A4
    }
};

// Custom dimensions
var wpOptions = new WordProcessingConvertOptions
{
    SizeSettings = new PageSizeOptions
    {
        PageWidth  = 612,   // points
        PageHeight = 792    // points
        // PageSize automatically becomes PageSize.Custom
    }
};

Применение новых объектов устраняет неоднозначность (в предыдущем API точки и пиксели использовались совместно) и объединяет все параметры конверсии под общую, легко обнаружимую модель.

Исправления и улучшения

ID Тип проблемы Описание
CONVERSIONNET‑8031 Bug PreserveOriginalDate, установленный в false, ранее игнорировался в .NET.
CONVERSIONNET‑8023 Bug Конверсии в Fluent‑синтаксисе проваливались, если не были явно указаны параметры конвертации.
CONVERSIONNET‑8020 Bug Конвертация WordProcessing вызывала необработанное исключение из‑за отсутствующего Microsoft.Extensions.DependencyInjection (v8.0.0.0).
CONVERSIONNET‑8006 Bug WordProcessingConvertOptions воспринимал PageWidth/PageHeight как пиксели, а не как точки.
CONVERSIONNET‑8005 Bug Свойства PdfConvertOptions.Margin* не учитывались при конвертации в PDF.

Эти исправления повышают надёжность в самых распространённых сценариях конверсии и приводят библиотеку в соответствие с ожидаемым поведением .NET.

Как получить обновление

  • NuGet – Обновите до последней версии пакета GroupDocs.Conversion:

    dotnet add package GroupDocs.Conversion --version 25.10
    

    (Тот же пакет работает для .NET 6+, .NET Framework 4.6.2 и .NET Core.)

  • Прямая загрузка – Сборки как для .NET, так и для .NET Framework доступны на странице релиза:
    https://releases.groupdocs.com/conversion/net/25-10/

Ресурсы