Quoi de neuf dans cette version
-
[Feature] Prise en charge et validation des signatures numériques d’image (SIGNATURENET‑5528)
Introduit l’incorporation de signatures numériques basée sur la stéganographie dans les images PNG et JPG. Prend en charge les signatures protégées par mot de passe, la gestion des flux/fichiers et la vérification complète avec des seuils de détection optionnels. -
[Enhancement] Optimisation des requêtes LINQ pour les opérations de signature (SIGNATURENET‑5500)
Refactorisation de la logique LINQ dans l’ensemble de la bibliothèque afin de réduire les allocations mémoire et d’améliorer la vitesse d’exécution. Ajoute un filtrage basé sur des prédicats pour les méthodesSearchetVerify, permettant aux développeurs de pré‑filtrer les signatures avant un traitement coûteux.
Corrections et améliorations
- [Bug Fix] Correction de l’exception d’initialiseur de type
GeneratePreview()avec le format DOC sous Linux (SIGNATURENET‑5555)
L’exception n’est plus levée lors de la génération d’aperçus pour les documents Microsoft Word sous les environnements Linux.
Comment utiliser les nouvelles fonctionnalités
Signer une image (stéganographie)
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}");
}
}
Vérifier une image signée
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.");
}
}
Vérification avancée avec extraction complète des données
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");
}
}
Recherche optimisée LINQ avec prédicat
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}");
}
}
Vérification optimisée LINQ avec prédicat
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");
}
Comment obtenir la mise à jour
- NuGet – Mettez à jour le dernier package GroupDocs.Signature :
dotnet add package GroupDocs.Signature --version 25.12 - Téléchargement direct – Récupérez les assemblages compilés pour .NET depuis la page de publication officielle :
GroupDocs.Signature for .NET 25.12 DLLs
Ressources
- Notes de version complètes – (lien vers la page des notes de version, si disponible)
- Documentation – https://docs.groupdocs.com/signature/net/
- Forum de support – https://forum.groupdocs.com/c/signature/