Firma electrónica son los datos digitales que se adjuntan a un documento transmitido electrónicamente. Verifica la intención del remitente de firmar el documento.
Como desarrollador, puede firmar documentos mediante programación y también verificar si el documento está correctamente firmado con la firma correcta. La API de GroupDocs.Signature para .NET proporciona muchas de estas funciones y le brinda control total sobre el proceso de firma electrónica. Proporciona diferentes implementaciones de firma electrónica, como:
- Firmas de texto (texto, anotaciones, marcas de agua, pegatinas)
- Firma de imagen: con opciones como efectos de imagen y rotación.
- Firma Digital - basada en certificados digitales.
- Firma de código de barras
- Código QR Firma
- Sello Firma
- Firma de metadatos
- Firma de campo de formulario
Este artículo muestra cómo los desarrolladores pueden buscar firmas electrónicas de varios tipos dentro de cualquier documento con C# utilizando GroupDocs.Signature API para .NET.
Buscar firmas de códigos QR en C#
El siguiente es el método de búsqueda más simple que muestra cómo buscar firmas de código QR dentro de un documento PDF. Puede usar la misma línea de código para buscar en cualquiera de los formatos de archivo admitidos.
// Search QR Code Signatures in PDF document using C#
using (Signature signature = new Signature("signed.pdf"))
{
// search for signatures in document
List<QrCodeSignature> signatures = signature.Search<QrCodeSignature>(SignatureType.QrCode);
Console.WriteLine($"\\nSource document contains following signatures.");
foreach (var qrCodeSignature in signatures)
{
Console.WriteLine($"QRCode signature found at page {qrCodeSignature.PageNumber} with type {qrCodeSignature.EncodeType.TypeName} and text {qrCodeSignature.Text}");
}
}
Buscar código de barras, código QR y otras firmas en C#
Es muy sencillo encontrar la firma de código de barras, la firma de código QR, la firma de texto o incluso la firma de metadatos oculta en el documento. El código mencionado a continuación muestra cómo se pueden extraer diferentes tipos de firmas de cualquier documento en C#.
using (Signature signature = new Signature("signed.pdf"))
{
// search for signatures in document
SearchResult result = signature.Search(SignatureType.Text, SignatureType.Barcode, SignatureType.QrCode, SignatureType.Metadata);
if (result.Signatures.Count > 0)
{
Console.WriteLine($"\\nSource document contains following signatures.");
foreach (var resSignature in result.Signatures)
{
Console.WriteLine($"Signature found at page {resSignature.PageNumber} with type {resSignature.SignatureType} and Id#: {resSignature.SignatureId}");
}
}
else
{
Console.WriteLine("No signature was found.");
}
}
Buscar firma de imagen en PDF y capturar contenido en C#
La API de firmas de .NET no solo permite obtener todas las firmas de varios tipos, sino que también captura el contenido de datos de imágenes para presentaciones, hojas de cálculo, procesamiento de texto y documentos PDF. El siguiente es el código fuente que muestra cómo capturar el contenido de la imagen después de la búsqueda exitosa de la firma de la imagen de un documento PDF en C#.
using (Signature signature = new Signature("signed.pdf"))
{
// setup search options
ImageSearchOptions searchOptions = new ImageSearchOptions()
{
// enable grabbing image content feature
ReturnContent = true,
// set minimum size if needed
MinContentSize = 0,
// set maximum size if needed
MaxContentSize = 0,
// specify exact image type to be returned
ReturnContentType = FileType.JPEG,
};
// search document
List<ImageSignature> signatures = signature.Search<ImageSignature>(searchOptions);
Console.WriteLine($"\\nSource document contains following image signature(s).");
// output signatures
foreach (ImageSignature imageSignature in signatures)
{
Console.Write($"Found Image signature at page {imageSignature.PageNumber} and size {imageSignature.Size}.");
Console.WriteLine($"Location at {imageSignature.Left}-{imageSignature.Top}. Size is {imageSignature.Width}x{imageSignature.Height}.");
}
//Save signature images
string outputPath = "Output";
if (!Directory.Exists(outputPath))
{
Directory.CreateDirectory(outputPath);
}
foreach (ImageSignature imageSignature in signatures)
{
Console.Write($"Found Image signature at page {imageSignature.PageNumber} and size {imageSignature.Size}.");
Console.WriteLine($"Location at {imageSignature.Left}-{imageSignature.Top}. Size is {imageSignature.Width}x{imageSignature.Height}.");
string outputFilePath = System.IO.Path.Combine(outputPath, $"image{i}{imageSignature.Format.Extension}");
using (FileStream fs = new FileStream(outputFilePath, FileMode.Create))
{
fs.Write(imageSignature.Content, 0, imageSignature.Content.Length);
}
}
}
Recursos clave para GroupDocs.Signature para .NET
Explore más sobre GroupDocs.Signaure para la API de .NET. Puede ponerse en contacto libremente con el soporte si necesita ayuda:
- Documentación
- Ejemplos de código fuente - GitHub
- Foro