چه جدیدی در این انتشار وجود دارد

  • [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()
    };

    // Filter only text signatures containing "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");

    // Verify only signatures on page 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

منابع