我們很高興宣布 GroupDocs.Assembly for .NET 25.12 – 這個聖誕版已於 2025 年 12 月 推出。此更新加入完整的 OOXML 合規處理、改善 Linux 上的條碼產生,並解決關鍵的模板處理問題。

此版本的新功能

類別 問題 摘要
功能 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>
    /// 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

資源