ما الجديد في هذا الإصدار
-
[Feature] دعم توقيعات الصور الرقمية والتحقق منها (SIGNATURENET‑5528)
يقدم دمجًا يعتمد على الستيجانوجرافيا للتوقيعات الرقمية داخل صور PNG وJPG. يدعم التوقيعات المحمية بكلمة مرور، ومعالجة التدفقات/الملفات، والتحقق الكامل مع عتبات كشف اختيارية. -
[Enhancement] تحسين استعلامات LINQ لعمليات التوقيع (SIGNATURENET‑5500)
أُعيد هيكلة منطق LINQ في المكتبة لتقليل تخصيص الذاكرة وتحسين سرعة التنفيذ. يضيف تصفية قائمة على الشرط للطرقSearchوVerify، مما يتيح للمطورين تصفية التوقيعات مسبقًا قبل المعالجة المكلفة.
الإصلاحات والتحسينات
- [Bug Fix] تم إصلاح استثناء مبدئ النوع
GeneratePreview()مع تنسيق DOC على لينكس (SIGNATURENET‑5555)
لم يعد الاستثناء يُطلق عند إنشاء معاينات لمستندات Microsoft Word على بيئات لينكس.
كيفية استخدام الميزات الجديدة
توقيع صورة (ستيجانوجرافيا)
using GroupDocs.Signature;
using GroupDocs.Signature.Options;
string inputFile = "image.png";
string outputFile = "signed_image.png";
string password = "MySecurePassword123";
using (Signature signature = new Signature(inputFile))
{
ImageDigitalSignOptions signOptions = new ImageDigitalSignOptions
{
Password = password
};
SignResult signResult = signature.Sign(outputFile, signOptions);
if (signResult.Succeeded?.Count > 0)
{
Console.WriteLine("Image signed successfully!");
Console.WriteLine($"Signatures added: {signResult.Succeeded.Count}");
}
}
التحقق من صورة موقعة
using GroupDocs.Signature;
using GroupDocs.Signature.Options;
string signedFile = "signed_image.png";
string password = "MySecurePassword123";
using (Signature signature = new Signature(signedFile))
{
ImageDigitalVerifyOptions verifyOptions = new ImageDigitalVerifyOptions
{
Password = password,
DetectionThresholdPercent = 75 // optional, 0‑100%
};
VerificationResult verifyResult = signature.Verify(verifyOptions);
if (verifyResult.IsValid)
{
Console.WriteLine("Digital signature is valid!");
Console.WriteLine($"Verified signatures: {verifyResult.Succeeded.Count}");
}
else
{
Console.WriteLine("Digital signature is invalid or not found.");
}
}
التحقق المتقدم مع استخراج كامل للبيانات
using (Signature signature = new Signature("signed_image.png"))
{
ImageDigitalVerifyOptions verifyOptions = new ImageDigitalVerifyOptions
{
Password = "MySecurePassword123",
UseFullDataExtraction = true, // maximum accuracy
DetectionThresholdPercent = 85
};
VerificationResult verifyResult = signature.Verify(verifyOptions);
if (verifyResult.IsValid && verifyOptions.DetectedProbability.HasValue)
{
Console.WriteLine($"Signature detected with {verifyOptions.DetectedProbability.Value}% probability");
}
}
بحث محسّن بـ LINQ مع شرط
using GroupDocs.Signature;
using GroupDocs.Signature.Options;
using GroupDocs.Signature.Domain;
using (Signature signature = new Signature("document.pdf"))
{
List<SearchOptions> searchOptions = new List<SearchOptions>
{
new TextSearchOptions()
};
// تصفية التوقيعات النصية التي تحتوي على "Approved"
SearchResult result = signature.Search(searchOptions,
sig => sig is TextSignature txt && txt.Text.Contains("Approved"));
foreach (BaseSignature sig in result.Signatures)
{
Console.WriteLine($"Found: {((TextSignature)sig).Text}");
}
}
تحقق محسّن بـ LINQ مع شرط
using (Signature signature = new Signature("signed_document.pdf"))
{
TextVerifyOptions verifyOptions = new TextVerifyOptions("John Smith");
// تحقق فقط من التوقيعات الموجودة في الصفحة 1
List<BaseSignature> result = signature.Verify(verifyOptions,
sig => sig.PageNumber == 1);
Console.WriteLine($"Found {result.Count} verified signatures on page 1");
}
كيفية الحصول على التحديث
-
NuGet – قم بالترقية إلى أحدث حزمة GroupDocs.Signature:
dotnet add package GroupDocs.Signature --version 25.12 -
Direct Download – احصل على التجميعات المترجمة لـ .NET من صفحة الإصدار الرسمية:
GroupDocs.Signature for .NET 25.12 DLLs
الموارد
- ملاحظات الإصدار الكاملة – (رابط إلى صفحة ملاحظات الإصدار، إذا كان متوفرًا)
- الوثائق – https://docs.groupdocs.com/signature/net/
- منتدى الدعم – https://forum.groupdocs.com/c/signature/