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
SdtRunsã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: