Co nowego w tej wersji
-
[Feature] Obsługa i weryfikacja cyfrowych podpisów w obrazach (SIGNATURENET‑5528)
Wprowadza osadzanie cyfrowych podpisów w obrazach PNG i JPG przy użyciu steganografii. Obsługuje podpisy chronione hasłem, obsługę strumieni/plików oraz pełną weryfikację z opcjonalnymi progami wykrywania. -
[Enhancement] Optymalizacja zapytań LINQ dla operacji podpisów (SIGNATURENET‑5500)
Przepisano logikę LINQ w całej bibliotece, aby zmniejszyć alokacje pamięci i przyspieszyć wykonanie. Dodano filtrowanie oparte na predykacie dla metodSearchiVerify, umożliwiając programistom wstępne odfiltrowanie podpisów przed kosztownym przetwarzaniem.
Poprawki i udoskonalenia
- [Bug Fix] Naprawiono wyjątek inicjalizatora typu w
GeneratePreview()przy formacie DOC w systemie Linux (SIGNATURENET‑5555)
Wyjątek nie jest już zgłaszany podczas generowania podglądów dokumentów Microsoft Word w środowiskach Linux.
Jak używać nowych funkcji
Podpisywanie obrazu (steganografia)
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("Obraz pomyślnie podpisany!");
Console.WriteLine($"Dodano podpisy: {signResult.Succeeded.Count}");
}
}
Weryfikacja podpisanego obrazu
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 // opcjonalne, 0‑100%
};
VerificationResult verifyResult = signature.Verify(verifyOptions);
if (verifyResult.IsValid)
{
Console.WriteLine("Cyfrowy podpis jest prawidłowy!");
Console.WriteLine($"Zweryfikowane podpisy: {verifyResult.Succeeded.Count}");
}
else
{
Console.WriteLine("Cyfrowy podpis jest nieprawidłowy lub nie został znaleziony.");
}
}
Zaawansowana weryfikacja z pełnym wyodrębnianiem danych
using (Signature signature = new Signature("signed_image.png"))
{
ImageDigitalVerifyOptions verifyOptions = new ImageDigitalVerifyOptions
{
Password = "MySecurePassword123",
UseFullDataExtraction = true, // maksymalna dokładność
DetectionThresholdPercent = 85
};
VerificationResult verifyResult = signature.Verify(verifyOptions);
if (verifyResult.IsValid && verifyOptions.DetectedProbability.HasValue)
{
Console.WriteLine($"Podpis wykryty z prawdopodobieństwem {verifyOptions.DetectedProbability.Value}%");
}
}
Wyszukiwanie zoptymalizowane LINQ z predykatem
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()
};
// Filtruj tylko podpisy tekstowe zawierające "Approved"
SearchResult result = signature.Search(searchOptions,
sig => sig is TextSignature txt && txt.Text.Contains("Approved"));
foreach (BaseSignature sig in result.Signatures)
{
Console.WriteLine($"Znaleziono: {((TextSignature)sig).Text}");
}
}
Weryfikacja zoptymalizowana LINQ z predykatem
using (Signature signature = new Signature("signed_document.pdf"))
{
TextVerifyOptions verifyOptions = new TextVerifyOptions("John Smith");
// Weryfikuj tylko podpisy na stronie 1
List<BaseSignature> result = signature.Verify(verifyOptions,
sig => sig.PageNumber == 1);
Console.WriteLine($"Znaleziono {result.Count} zweryfikowanych podpisów na stronie 1");
}
Jak uzyskać aktualizację
- NuGet – Zaktualizuj do najnowszego pakietu GroupDocs.Signature:
dotnet add package GroupDocs.Signature --version 25.12 - Direct Download – Pobierz skompilowane zestawy dla .NET z oficjalnej strony wydania:
GroupDocs.Signature for .NET 25.12 DLLs
Zasoby
- Pełne informacje o wydaniu – (link to the release notes page, if available)
- Dokumentacja – https://docs.groupdocs.com/signature/net/
- Forum wsparcia – https://forum.groupdocs.com/c/signature/