O que há de novo nesta versão
-
[Recurso] Suporte e validação de assinatura digital de imagem (SIGNATURENET‑5528)
Introduz incorporação de assinaturas digitais baseada em esteganografia em imagens PNG e JPG. Suporta assinaturas protegidas por senha, manipulação de fluxo/arquivo, e verificação completa com limiares de detecção opcionais. -
[Melhoria] Otimização de consultas LINQ para operações de assinatura (SIGNATURENET‑5500)
Refatorou a lógica LINQ em toda a biblioteca para reduzir alocações de memória e melhorar a velocidade de execução. Adiciona filtragem baseada em predicado para os métodosSearcheVerify, permitindo que desenvolvedores pré‑filtrarem assinaturas antes de processamento custoso.
Correções e aprimoramentos
- [Correção de Bugs] Corrigida exceção do inicializador de tipo
GeneratePreview()com formato DOC no Linux (SIGNATURENET‑5555)
A exceção não é mais lançada ao gerar pré‑visualizações de documentos Microsoft Word em ambientes Linux.
Como usar os novos recursos
Assinando uma imagem (esteganografia)
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("Imagem assinada com sucesso!");
Console.WriteLine($"Assinaturas adicionadas: {signResult.Succeeded.Count}");
}
}
Verificando uma imagem assinada
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 // opcional, 0‑100%
};
VerificationResult verifyResult = signature.Verify(verifyOptions);
if (verifyResult.IsValid)
{
Console.WriteLine("Assinatura digital é válida!");
Console.WriteLine($"Assinaturas verificadas: {verifyResult.Succeeded.Count}");
}
else
{
Console.WriteLine("Assinatura digital é inválida ou não encontrada.");
}
}
Verificação avançada com extração completa de dados
using (Signature signature = new Signature("signed_image.png"))
{
ImageDigitalVerifyOptions verifyOptions = new ImageDigitalVerifyOptions
{
Password = "MySecurePassword123",
UseFullDataExtraction = true, // precisão máxima
DetectionThresholdPercent = 85
};
VerificationResult verifyResult = signature.Verify(verifyOptions);
if (verifyResult.IsValid && verifyOptions.DetectedProbability.HasValue)
{
Console.WriteLine($"Assinatura detectada com probabilidade de {verifyOptions.DetectedProbability.Value}%");
}
}
Busca otimizada com LINQ e predicado
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()
};
// Filtrar apenas assinaturas de texto contendo "Approved"
SearchResult result = signature.Search(searchOptions,
sig => sig is TextSignature txt && txt.Text.Contains("Approved"));
foreach (BaseSignature sig in result.Signatures)
{
Console.WriteLine($"Encontrado: {((TextSignature)sig).Text}");
}
}
Verificação otimizada com LINQ e predicado
using (Signature signature = new Signature("signed_document.pdf"))
{
TextVerifyOptions verifyOptions = new TextVerifyOptions("John Smith");
// Verificar apenas assinaturas na página 1
List<BaseSignature> result = signature.Verify(verifyOptions,
sig => sig.PageNumber == 1);
Console.WriteLine($"Encontradas {result.Count} assinaturas verificadas na página 1");
}
Como obter a atualização
- NuGet – Atualize para a versão mais recente do pacote GroupDocs.Signature:
dotnet add package GroupDocs.Signature --version 25.12 - Download Direto – Baixe os assemblies compilados para .NET a partir da página oficial de lançamentos:
GroupDocs.Signature for .NET 25.12 DLLs
Recursos
- Notas completas da versão – (link para a página de notas de versão, se disponível)
- Documentação – https://docs.groupdocs.com/signature/net/
- Fórum de suporte – https://forum.groupdocs.com/c/signature/