ما خوشحالیم که GroupDocs.Assembly برای .NET 25.12 را اعلام کنیم – نسخه کریسمس که از دسامبر 2025 در دسترس است. این به‌روزرسانی پشتیبانی کامل از سازگاری OOXML را اضافه می‌کند، تولید بارکد در لینوکس را بهبود می‌بخشد و مشکلات مهم پردازش قالب‌ها را برطرف می‌سازد.

جدیدهای این نسخه

دسته مسأله خلاصه
ویژگی ASSEMBLYNET‑70 پیاده‌سازی مشخصات صریح سازگاری OOXML برای اسناد Word.
بهبود ASSEMBLYNET‑68 افزودن پشتیبانی از سازگاری OOXML (Ecma, Transitional, Strict) برای اسناد Word.
بهبود ASSEMBLYNET‑69 حفظ سطح سازگاری سند اصلی به‌صورت خودکار در صورت امکان.
بهبود ASSEMBLYNET‑75 اعمال حداقل بُعد X برای بارکدهای Codabar (تولید قابل اطمینان‌تر).
بهبود ASSEMBLYNET‑76 جلوگیری از استفاده از رنگ‌های شفاف در هنگام تولید بارکد در لینوکس.
رفع‑خطا ASSEMBLYNET‑73 عبارات قالب در داخل کنترل‌های محتوای درون‌خطی (SdtRun) اکنون به‌درستی پردازش می‌شوند.
رفع‑خطا ASSEMBLYNET‑60 بارکدها دیگر در اسمبلی‌های لینوکس (.NET 8) خالی نمایش داده نمی‌شوند.

پشتیبانی از سازگاری OOXML

اکنون می‌توانید سطح دقیق سازگاری OOXML را هنگام ذخیره‌سازی یک سند Word (DOCX, DOCM, DOTX و غیره) انتخاب کنید. کتابخانه همچنین به‌صورت خودکار سازگاری سند منبع را زمانی که سند اصلی Transitional باشد حفظ می‌کند.

شمارش عمومی جدید: OoxmlCompliance

namespace GroupDocs.Assembly
{
    /// <summary>
    /// سطح سازگاری OOXML که هنگام ذخیره‌سازی اسناد Word به فرمت‌های OOXML استفاده می‌شود را مشخص می‌کند.
    /// </summary>
    public enum OoxmlCompliance
    {
        /// <summary>سازگاری ECMA‑376.</summary>
        Ecma,

        /// <summary>سازگاری ISO/IEC 29500:2008 Transitional.</summary>
        Transitional,

        /// <summary>سازگاری ISO/IEC 29500:2008 Strict.</summary>
        Strict
    }
}

ویژگی جدید در LoadSaveOptions: OoxmlCompliance

public class LoadSaveOptions
{
    /// <summary>
    /// دریافت یا تنظیم سطح سازگاری OOXML که هنگام ذخیره‌سازی اسناد Word به فرمت‌های OOXML استفاده می‌شود.
    /// مقدار پیش‌فرض null است، به این معنی که سطح سازگاری به‌صورت خودکار تعیین می‌شود.
    /// </summary>
    public OoxmlCompliance? OoxmlCompliance { get; set; }
}

نحوه تعیین صریح سطح سازگاری OOXML

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

// ساخت LoadSaveOptions با سازگاری OOXML صریح
var options = new LoadSaveOptions(FileFormat.Docx);
options.OoxmlCompliance = OoxmlCompliance.Strict; // یا Ecma, Transitional

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

نحوه حفظ خودکار سازگاری سند اصلی

var source = "template_transitional.docx"; // سندی با سازگاری Transitional
var target = "output.docx";
var data   = "data.json";

// OoxmlCompliance به‌صورت پیش‌فرض null است – سازگاری اصلی حفظ می‌شود
var options = new LoadSaveOptions(FileFormat.Docx);
// options.OoxmlCompliance مقدار null باقی می‌ماند

var dataSourceInfo = new DataSourceInfo(new JsonDataSource(data));
var assembler      = new DocumentAssembler();
assembler.AssembleDocument(source, target, options, dataSourceInfo);
// سند خروجی سازگاری Transitional را حفظ می‌کند

پردازش عبارات قالب در کنترل‌های محتوای درون‌خطی (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);
// تمام عبارات قالب، از جمله آن‌ها در SdtRun، جایگزین می‌شوند.

رفع‌خطاها و بهبودها

  • [بهبود] تولید بارکد Codabar حالا حداقل بُعد X را اعمال می‌کند (ASSEMBLYNET‑75).
  • [بهبود] رندر بارکد در لینوکس از رنگ‌های شفاف جلوگیری می‌کند (ASSEMBLYNET‑76).
  • [رفع‌خطا] عبارات قالب داخل کنترل‌های SdtRun پردازش می‌شوند (ASSEMBLYNET‑73).
  • [رفع‌خطا] بارکدها دیگر در لینوکس (.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

منابع