Ми раді оголосити про GroupDocs.Assembly для .NET 25.12 – різдвяний випуск, доступний з грудня 2025. Це оновлення додає повну підтримку відповідності OOXML, покращує генерацію штрих‑кодів у Linux та виправляє критичні проблеми обробки шаблонів.

Що нового у цьому випуску

Категорія Проблема Коротко
Функція ASSEMBLYNET‑70 Реалізовано явну специфікацію відповідності OOXML для документів Word.
Удосконалення ASSEMBLYNET‑68 Додано підтримку відповідності OOXML (Ecma, Transitional, Strict) для документів Word.
Удосконалення ASSEMBLYNET‑69 Автоматично зберігати рівень відповідності оригінального документа, коли це можливо.
Удосконалення ASSEMBLYNET‑75 Встановлено мінімальний X‑розмір для штрих‑кодів Codabar (надійніше генерування).
Удосконалення ASSEMBLYNET‑76 Запобігання використанню прозорих кольорів під час генерації штрих‑кодів у Linux.
Виправлення ASSEMBLYNET‑73 Вирази шаблонів у вбудованих елементах управління (SdtRun) тепер обробляються правильно.
Виправлення ASSEMBLYNET‑60 Штрих‑коди більше не відображаються порожніми у збірках Linux (.NET 8).

Підтримка відповідності OOXML

Тепер ви можете вибирати точний рівень відповідності OOXML під час збереження документа Word (DOCX, DOCM, DOTX тощо). Бібліотека також автоматично зберігає відповідність вихідного документа, якщо оригінал має Transitional.

Нове публічне перерахування: OoxmlCompliance

namespace GroupDocs.Assembly
{
    /// <summary>
    /// Specifies the OOXML compliance level to use when saving Word documents to OOXML formats.
    /// </summary>
    public enum OoxmlCompliance
    {
        /// <summary>ECMA‑376 compliance.</summary>
        Ecma,

        /// <summary>ISO/IEC 29500:2008 Transitional compliance.</summary>
        Transitional,

        /// <summary>ISO/IEC 29500:2008 Strict compliance.</summary>
        Strict
    }
}

Нова властивість у LoadSaveOptions: OoxmlCompliance

public class LoadSaveOptions
{
    /// <summary>
    /// Gets or sets the OOXML compliance level to use when saving Word documents to OOXML formats.
    /// The default value is null, which means the compliance level will be determined automatically.
    /// </summary>
    public OoxmlCompliance? OoxmlCompliance { get; set; }
}

Як вказати явний рівень відповідності OOXML

var source = "template.docx";
var target = "output.docx";
var data   = "data.json";

// Create LoadSaveOptions with explicit OOXML compliance
var options = new LoadSaveOptions(FileFormat.Docx);
options.OoxmlCompliance = OoxmlCompliance.Strict; // or Ecma, Transitional

var dataSourceInfo = new DataSourceInfo(new JsonDataSource(data));
var assembler      = new DocumentAssembler();
assembler.AssembleDocument(source, target, options, dataSourceInfo);

Як автоматично зберегти відповідність оригінального документа

var source = "template_transitional.docx"; // Document with Transitional compliance
var target = "output.docx";
var data   = "data.json";

// OoxmlCompliance is null by default – original compliance will be preserved
var options = new LoadSaveOptions(FileFormat.Docx);
// options.OoxmlCompliance remains null

var dataSourceInfo = new DataSourceInfo(new JsonDataSource(data));
var assembler      = new DocumentAssembler();
assembler.AssembleDocument(source, target, options, dataSourceInfo);
// Output document keeps Transitional compliance

Обробка виразів шаблонів у вбудованих елементах управління (SdtRun)

var source = "template_with_sdtrun.docx";
var target = "output.docx";
var data   = "data.json";

// Template document contains:
// - SdtBlock: <<[field1]>>
// - SdtRun (inline): <<[field2]>>   // Now correctly processed
// - Regular text: <<[field3]>>

var options = new LoadSaveOptions(FileFormat.Docx);
var dataSourceInfo = new DataSourceInfo(new JsonDataSource(data));
var assembler = new DocumentAssembler();
assembler.AssembleDocument(source, target, options, dataSourceInfo);
// All template expressions, including those in SdtRun, are replaced.

Виправлення та удосконалення

  • [Удосконалення] Генерація штрих‑коду Codabar тепер застосовує мінімальний X‑розмір (ASSEMBLYNET‑75).
  • [Удосконалення] Відмальовування штрих‑коду у Linux уникає прозорих кольорів (ASSEMBLYNET‑76).
  • [Виправлення] Вирази шаблонів у елементах SdtRun обробляються (ASSEMBLYNET‑73).
  • [Виправлення] Штрих‑коди більше не залишаються порожніми у Linux (.NET 8) (ASSEMBLYNET‑60).

Як отримати оновлення

  • NuGet – Оновіть до останнього пакету GroupDocs.Assembly:

    dotnet add package GroupDocs.Assembly --version 25.12
    

    (Той самий пакет працює з .NET 6+, .NET 5 та .NET Framework 4.6.2.)

  • Пряме завантаження – Завантажте скомпільовані збірки для .NET з офіційної сторінки випуску:

    GroupDocs.Assembly for .NET 25.12 DLLs only

Ресурси