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.

本次发布的新功能

类别 问题 摘要
功能 ASSEMBLYNET‑70 为 Word 文档实现显式的 OOXML 合规性规范。
增强 ASSEMBLYNET‑68 为 Word 文档添加 OOXML 合规性支持(Ecma、Transitional、Strict)。
增强 ASSEMBLYNET‑69 在可能的情况下自动保留原始文档的合规性级别。
增强 ASSEMBLYNET‑75 对 Codabar 条形码强制最小 X 维度(生成更可靠)。
增强 ASSEMBLYNET‑76 阻止在 Linux 上生成条形码时使用透明颜色。
修复 ASSEMBLYNET‑73 现在能够正确处理内联内容控件 (SdtRun) 中的模板表达式。
修复 ASSEMBLYNET‑60 条形码在 Linux (.NET 8) 程序集中不再渲染为空白。

OOXML 合规性支持

您现在可以在保存 Word 文档(DOCX、DOCM、DOTX 等)时选择确切的 OOXML 合规性级别。当原始文档为 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>
    /// 获取或设置在将 Word 文档保存为 OOXML 格式时使用的 OOXML 合规性级别。
    /// 默认值为 null,表示合规性级别将自动确定。
    /// </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";

// 模板文档包含:
// - SdtBlock: <<[field1]>>
// - SdtRun(内联):<<[field2]>>   // 现在已正确处理
// - 普通文本:<<[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。)

  • Direct download – 从官方发布页面下载适用于 .NET 的编译程序集:

    GroupDocs.Assembly for .NET 25.12 DLLs only

资源