نحن سعداء بالإعلان عن إصدار GroupDocs.Merger for .NET v26.9، المتاح اعتبارًا من سبتمبر 2026. يقدم هذا الإصدار دمج الصفوف في جداول البيانات، ويحسن اختيار صفحات TIFF عبر PageBuilder، ويعزز معالجة أبعاد المعاينة، ويحل مشكلات التزامن مع مخرجات Visio و DOC، ويستبدل عدة أوضاع فشل صامتة باستثناءات واضحة—مما يجعل الـ API أكثر صلابة وتوقعًا.

ما الجديد في هذا الإصدار

  • [Feature] دمج صفوف Excel من ملفات متعددة في ورقة واحدة (MERGERNET-2198)
  • [Feature] تطبيق اختيار الصفحات في PageBuilder على أول مستند TIFF (MERGERNET-1372)
  • [Improvement] إلقاء استثناء عندما لا يتمكن SetLicense من العثور على ملف الترخيص (MERGERNET-2183)
  • [Improvement] رفض تدفق الترخيص الفارغ في SetLicense (MERGERNET-2184)
  • [Improvement] إلقاء استثناء واضح عند دمج صورة أو ملف صوتي إلى تنسيق غير مدعوم (MERGERNET-2190)
  • [Improvement] إزالة System.Drawing.Common من الحزم متعددة المنصات والإبلاغ عن الاعتماديات المفقودة بوضوح (MERGERNET-2202)
  • [Bug] إغلاق ملف المصدر بعد أن يفتح أو يدمج Merger مستندًا عبر المسار (MERGERNET-2187)
  • [Bug] استدعاء مصنع التدفقات مرة واحدة فقط عند إنشاء Merger (MERGERNET-2189)
  • [Bug] إصلاح إخراج DOC الفاسد عند دمج مستندات PDF أو XPS في DOC من عدة خيوط (MERGERNET-2192)
  • [Bug] تطبيق تغيير اتجاه الصفحة على كل صفحة عندما لا يتم تحديد أرقام الصفحات (MERGERNET-2194)
  • [Bug] احترام العرض والارتفاع المطلوبين للمعاينة في كل عائلة تنسيقات المستندات (MERGERNET-2196)
  • [Bug] رفض ExtractPages و RemovePages عند استدعائهما بدون أرقام صفحات بدلاً من إنتاج مستند فارغ أو غير متغير صامتًا (MERGERNET-2197)
  • [Bug] إصلاح فشل مستندات Visio بشكل متقطع مع ArgumentNullException للخط trueTypeFont عند معالجتها متزامنًا (MERGERNET-2199)
  • [Bug] إصلاح فشل محافظ PDF مع NullReferenceException عندما لا يحتوي الملف المضمّن على تاريخ تعديل (MERGERNET-2200)

تغييرات في واجهة برمجة التطبيقات العامة

1. دمج جداول البيانات — وضع الصفوف (API جديد)

أنواع عامة جديدة في مساحة الاسم GroupDocs.Merger.Domain.Options:

النوع الوصف
SpreadsheetJoinOptions خيارات الدمج لجداول البيانات، مشتقة من PageJoinOptions. الخصائص: Mode، SkipRows، SheetMatching.
SpreadsheetJoinMode Worksheets (الافتراضي) يضيف أوراق الملف المدموج كأوراق عمل منفصلة، كما كان سابقًا. Rows يضيف صفوف كل ملف مدموج أسفل آخر صف يحتوي على بيانات الورقة المطابقة في النتيجة.
SpreadsheetSheetMatching ByIndex (الافتراضي) يضيف الورقة 2 إلى الورقة 2، الورقة 3 إلى الورقة 3، إلخ؛ FirstSheetOnly يضيف الورقة الأولى فقط من كل ملف مدموج.
  • SkipRows يتخطى أول N صفًا من كل ملف مدموج، مثل صف العنوان. يُؤخذ المستند الأول بالكامل دائمًا. لا تأثير لـ SkipRows و SheetMatching في وضع Worksheets.
  • الصيغ المدعومة: XLSX، XLS، XLSM، XLSB، XLTX، XLTM، XLT، XLAM و ODS.
  • ما يتم نقله: قيم الخلايا، الصيغ (مع تعديل المراجع النسبية)، الأنماط، الخلايا المدمجة وارتفاعات الصفوف. ما لا يتم نقله: المخططات، الصور، جداول المحور، الجداول، التنسيق الشرطي والتحقق من صحة البيانات.
  • SkipRows سالب يؤدي إلى إلقاء GroupDocsMergerException (“The count of rows to skip can not be negative.”).
  • تجاوز حدود الصفوف (65 536 لـ XLS/XLT، 1 048 576 للبقية) يؤدي إلى إلقاء GroupDocsMergerException.
  • ApplyPageBuilder يلقى GroupDocsMergerException بينما يكون جدول بيانات مدموج في وضع Rows قيد الانتظار.

2. TIFF — PageBuilder يطبق اختيار الصفحات من المستند الأول

لا تغيير في الـ API. الآن CreatePageBuilder و ApplyPageBuilder يطبقان الصفحات المختارة من أول مستند TIFF؛ سابقًا كانت جميع صفحات المستند الأول تُضمّن دائمًا. عمليات الدمج التي لا تستخدم PageBuilder تنتج النتيجة نفسها كما كان.

بعد دمج باستخدام ImageJoinOptions، الآن CreatePageBuilder و ApplyPageBuilder يلقيا GroupDocsMergerException، لأن الصور المدموجة تُركّب في تخطيط واحد بدلاً من تسلسل صفحات.

3. الترخيص — SetLicense لم يعد يفشل صامتًا

  • License.SetLicense(string licensePath) يلقى InvalidOperationException (“License not found: …”) عندما لا يمكن العثور على ملف الترخيص.
  • License.SetLicense(Stream licenseStream) يلقى ArgumentNullException إذا كان التدفق فارغًا.

4. عمليات الصفحات مع قائمة صفحات فارغة

  • ExtractPages و RemovePages المستدعيان بدون أرقام صفحات الآن يلقيا GroupDocsMergerException (“There are no page numbers to extract.” / “There are no page numbers to remove.”).
  • ChangeOrientation المستدعي بدون أرقام صفحات الآن يغيّر اتجاه كل صفحة في مستندات PDF، XPS، معالجة النصوص، جداول البيانات ومستندات Visio.

5. حجم المعاينة

GeneratePreview الآن يغيّر حجم صورة كل صفحة إلى Width و Height المطلوبين — يتم تمديد الصورة لتطابق هذين القيمتين تمامًا عندما يُحددان كلاهما. Width أو Height سالب الآن يلقى GroupDocsMergerException.

6. System.Drawing.Common والاعتماديات المفقودة

  • الحزم متعددة المنصات (GroupDocs.Merger.Net60، GroupDocs.Merger.Net80، GroupDocs.Merger.Net100) لم تعد تعتمد على System.Drawing.Common.
  • الاعتماديات runtime المفقودة الآن تثير MissingDependencyException، مع ذكر المكوّن المفقود وتعليمات التثبيت.

7. دمج الصور والصوت في تنسيقات غير مدعومة

دمج صورة أو ملف صوتي في تنسيق مستند غير مدعوم الآن يلقى FileTypeNotSupportedException (“Joining ‘…’ into ‘…’ is not supported”).

الميزات الجديدة

  • دمج جداول البيانات وضع الصفوف: يمكن الآن إلحاق صفوف عدة جداول بيانات في ورقة واحدة بدلاً من إضافتها كأوراق عمل منفصلة، مع خيارات لتخطي صفوف العنوان ومطابقة الأوراق حسب الموقع.
  • PageBuilder لمستندات TIFF: الآن يُطبق اختيار الصفحات الذي تم إجراؤه عبر PageBuilder على أول مستند TIFF أيضًا — كان يتم تضمين جميع صفحاته سابقًا.
  • أبعاد معاينة دقيقة: GeneratePreview يعيد الآن الصور بالأبعاد المطلوبة Width و Height لكل عائلة تنسيقات المستندات.
  • إصلاحات التزامن: لم تعد مخرجات Visio و DOC تفشل بشكل متقطع عند معالجتها من عدة خيوط.
  • إدارة الموارد: المستندات المفتوحة أو المدموجة عبر مسار الملف لم تعد تبقي الملف المصدر مفتوحًا؛ مصانع التدفقات تُستدعى مرة واحدة فقط.
  • أخطاء أوضح: عدة عمليات كانت تفشل صامتًا الآن تطرح استثناءات وصفية.

مثال على الشيفرة

using GroupDocs.Merger;
using GroupDocs.Merger.Domain.Options;

using (var merger = new Merger("january.xlsx"))
{
    var options = new SpreadsheetJoinOptions
    {
        Mode = SpreadsheetJoinMode.Rows,   // إلحاق الصفوف في الأوراق الموجودة
        SkipRows = 1                        // تخطي صف العنوان في كل ملف مدموج
    };

    merger.Join("february.xlsx", options);
    merger.Join("march.xlsx", options);
    merger.Save("q1.xlsx");
}

كيفية الحصول على التحديث

NuGet

  • الحزمة: GroupDocs.Merger 26.9.0
  • أمر التثبيت:
    dotnet add package GroupDocs.Merger --version 26.9.0
    

التحميل المباشر

الموارد