نحن سعداء أن نعلن عن GroupDocs.Annotation for .NET 26.10، الذي تم إصداره في أكتوبر 2026. هذا الإصدار يركز على الأمان: لم تعد المستندات تجلب الصور البعيدة أو أوراق الأنماط أو الملفات المرتبطة تلقائيًا، وتتيح لك الأعضاء الجدد في LoadOptions تحديد ما يمكن تحميله بالضبط. كما يقوم الإصدار بترقية محركات المستندات الأساسية، وتحديث تبعية معرضة للثغرات، وإصلاح عدة مشكلات.

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

المفتاح الفئة الملخص
ANNOTATIONNET-2663 ⚠️ تحسين الموارد الخارجية لم تعد تُحمَّل افتراضيًا (تحكمات LoadOptions الجديدة)
ANNOTATIONNET-2687 ✨ تحسين ترقية محركات المستندات الأساسية
ANNOTATIONNET-2672 🔒 أمان تحديث System.Security.Cryptography.Pkcs إلى 8.0.2 (CVE-2026-84008 / CVE-2026-70162)
ANNOTATIONNET-2102 🔧 إصلاح إصلاح FileTypeNotSupportedException عند استخراج التعليقات التوضيحية من مستندات EML
ANNOTATIONNET-1903 🔧 إصلاح إصلاح المستندات التي تم التعليق عليها بإصدارات أقدم والتي تفشل في الفتح على .NET 8
ANNOTATIONNET-2689 🔧 إصلاح إصلاح فقدان دوران صفحة PDF بزاوية 90 درجة عند الحفظ

الموارد الخارجية لم تعد تُحمَّل افتراضيًا

يمكن للمستند الإشارة إلى موارد خارجية: <img src="https://..."> في صفحة HTML أو جسم بريد إلكتروني، صورة مرتبطة في مستند Word، ورقة أنماط عن بُعد أو رابط دفتر عمل خارجي. حتى الآن، كان فتح أو معاينة أو حفظ مثل هذا المستند يجعل GroupDocs.Annotation يطلب تلك الموارد من الشبكة أو مشاركة ملفات.

على خادم يعالج مستندات غير موثوقة، يمثل هذا خطر تزوير طلب من جانب الخادم (SSRF): قد يجعل المستند الخادم يتصل بعناوين داخلية، ويمكن لمسار UNC أن يتسرب به بيانات اعتماد Windows للعملية.

بدءًا من الإصدار 26.10، يتم تخطي الموارد الخارجية افتراضيًا لمستندات معالجة النصوص، HTML، البريد الإلكتروني، العروض التقديمية وجداول البيانات:

  • بدون طلبات. لا يتم إجراء أي طلب شبكة أو مشاركة ملفات للموارد المشار إليها من قبل المستند، في أي عملية: Get، Add، Save، GeneratePreview و GetDocumentInfo.
  • نواقل مؤقتة فارغة. يتم عرض الصورة المتخلفة كعنصر نائب شفاف، ويتم الاحتفاظ بالرابط الأصلي في المستند المحفوظ.
  • المحتوى المضمّن لا يزال يعمل. أجزاء cid: من بريد إلكتروني، عناوين data: URI والصور المضمّنة تُحمَّل دائمًا.
  • التعليقات التوضيحية للصور لا تتأثر. لا يزال ImageAnnotation.ImagePath يُحمَّل من عنوان URL.

هذا تغيير في السلوك. إذا كانت مستنداتك تعتمد على تحميل الصور أو أوراق الأنماط البعيدة، فاسمح بها صراحةً باستخدام الأعضاء الجدد في LoadOptions:

العضو الافتراضي الوصف
SkipExternalResources true تخطي الموارد الخارجية. اضبطه على false لاستعادة سلوك ما قبل 26.10.
WhitelistedResources empty أسماء المضيفين أو بادئات URI المطلقة التي تُحمَّل حتى عندما يتم تخطي الموارد.
ExternalResourceHandler null يُستدعى لكل مورد خارجي؛ يمكنه السماح به، تخطيه أو توفير محتواه.

السماح بالمضيفين الموثوقين فقط (مستحسن):

LoadOptions loadOptions = new LoadOptions
{
    // SkipExternalResources stays true (the default)
    WhitelistedResources = { "cdn.example.com", "https://intranet.example.com/images/" }
};

using (Annotator annotator = new Annotator("input.html", loadOptions))
{
    annotator.Save("output.html"); // only images from the two whitelisted locations are loaded
}

فحص، السماح أو استبدال كل مورد باستخدام معالج:

class AuditingResourceHandler : ExternalResourceHandler
{
    public override void OnLoading(ExternalResourceLoadingArgs args)
    {
        Console.WriteLine($"{args.Uri}: {(args.Skipped ? "skipped" : "loaded")}");

        // serve a local copy instead of going to the network
        if (args.Uri == "https://example.com/logo.png")
            args.Data = File.ReadAllBytes("logo.png");
    }
}

ترقية محركات المستندات

تم تحديث محركات معالجة النصوص، جداول البيانات، العروض التقديمية، PDF، المخططات، البريد الإلكتروني، التصوير، CAD وعرض الرسومات المدمجة إلى إصدارات أكتوبر 2026. قد تختلف المستندات المعاد إنشاؤها ومعاينات الصفحات قليلًا على مستوى البايت أو البكسل مع بقاء المظهر البصري متساويًا.

لمشاريع .NET 6 و .NET 8، تعتمد حزم وقت التشغيل الآن على SkiaSharp 4.152.1. إذا كان مشروعك يشير مباشرةً إلى SkiaSharp 3.x، فقم بتحديثه إلى 4.x.

تحديث أمان

تجلب محركات المستندات System.Security.Cryptography.Pkcs 8.0.0 أو 8.0.1، والتي تتأثر بـ CVE-2026-84008 و CVE-2026-70162. الآن يشير GroupDocs.Annotation إلى الإصدار المصحح 8.0.2 على كل إطار هدف. لا يلزم أي تغييرات في الشيفرة.

الإصلاحات

  • EML من تدفق. تم اكتشاف رسالة EML تبدأ بـ MIME-Version: 1.0 كأرشيف MHT، وكان فتحها من تدفق يسبب استثناء FileTypeNotSupportedException. الآن تُفتح هذه الرسائل بنفس الطريقة من تدفق أو ملف، وتم دعم ملفات MHT الآن كمستندات بريد إلكتروني.
  • المستندات القديمة على .NET 8. فشلت المستندات التي تم التعليق عليها بإصدارات قبل 26.6 في الفتح على .NET 8 مع NotSupportedException. الآن تُفتح: يتم تخطي التعليقات التوضيحية القديمة مع تحذير في السجل، ويمكن إضافة تعليقات توضيحية جديدة وحفظها. تم إصلاح مشكلة ذات صلة مع العروض التقديمية المعاد حفظها (PPTX) التي لم تُقرأ تعليقاتها التوضيحية على جميع الأطر.
  • دوران PDF بزاوية 90 درجة. كان دوران صفحة PDF باستخدام Annotator.Rotation يعمل للزاويتين 180 و 270 درجة، لكن دوران 90 درجة كان يُفقد عند الحفظ. الآن يُحافظ عليه لجميع الزوايا:
using (Annotator annotator = new Annotator("input.pdf"))
{
    annotator.ProcessPages = 1;                 // the page to rotate
    annotator.Rotation = RotationDocument.on90; // previously ignored
    annotator.Save("output.pdf");
}

تغييرات API العامة

يضيف الإصدار الأعضاء التاليين:

لم يتم إزالة أو تغيير أي أعضاء عامة.

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

NuGet

قم بالتثبيت أو الترقية إلى GroupDocs.Annotation 26.10.0 باستخدام NuGet. الحزمة تقوم تلقائيًا بحل حزمة وقت التشغيل لإطار الهدف الخاص بك (.NET Framework 4.6.2، .NET 6 أو .NET 8):

dotnet add package GroupDocs.Annotation --version 26.10.0

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

قم بتنزيل الإصدار من صفحة GroupDocs.Annotation for .NET 26.10 .

الموارد