We’re happy to announce GroupDocs.Assembly for .NET 25.12 – the Christmas release that’s available as of December 2025. This update adds full OOXML compliance handling, improves barcode generation on Linux, and resolves critical template‑processing issues.

O que há de novo nesta versão

Categoria Problema Resumo
Recurso ASSEMBLYNET‑70 Implementar especificação explícita de conformidade OOXML para documentos Word.
Melhoria ASSEMBLYNET‑68 Adicionar suporte à conformidade OOXML (Ecma, Transitional, Strict) para documentos Word.
Melhoria ASSEMBLYNET‑69 Preservar automaticamente o nível de conformidade do documento original, quando possível.
Melhoria ASSEMBLYNET‑75 Aplicar uma dimensão X mínima para códigos de barras Codabar (geração mais confiável).
Melhoria ASSEMBLYNET‑76 Impedir que cores transparentes sejam usadas durante a geração de códigos de barras no Linux.
Correção ASSEMBLYNET‑73 Expressões de modelo dentro de controles de conteúdo inline (SdtRun) agora são processadas corretamente.
Correção ASSEMBLYNET‑60 Códigos de barras não são mais renderizados em branco nas assemblies Linux (.NET 8).

Suporte à Conformidade OOXML

Agora você pode escolher o nível exato de conformidade OOXML ao salvar um documento Word (DOCX, DOCM, DOTX, etc.). A biblioteca também preserva automaticamente a conformidade do documento de origem quando o original é Transitional.

Nova enumeração pública: 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
    }
}

Nova propriedade em 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; }
}

Como especificar um nível explícito de conformidade 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);

Como preservar automaticamente a conformidade do documento original

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

Processamento de expressões de modelo em controles de conteúdo inline (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.

Correções e melhorias

  • [Enhancement] A geração de código de barras Codabar agora impõe uma dimensão X mínima (ASSEMBLYNET‑75).
  • [Enhancement] A renderização de códigos de barras no Linux evita cores transparentes (ASSEMBLYNET‑76).
  • [Fix] Expressões de modelo dentro de controles SdtRun são processadas (ASSEMBLYNET‑73).
  • [Fix] Códigos de barras não aparecem mais em branco no Linux (.NET 8) (ASSEMBLYNET‑60).

Como obter a atualização

  • NuGet – Atualize para o pacote GroupDocs.Assembly mais recente:

    dotnet add package GroupDocs.Assembly --version 25.12
    

    (O mesmo pacote funciona para .NET 6+, .NET 5 e .NET Framework 4.6.2.)

  • Download direto – Baixe as assemblies compiladas para .NET na página oficial de lançamento:

    GroupDocs.Assembly for .NET 25.12 DLLs only

Recursos