מה חדש במהדורה זו

  • [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

משאבים