Электронная подпись — это цифровые данные, прилагаемые к документу, передаваемому в электронном виде. Он подтверждает намерение отправителя подписать документ.

GroupDocs.Signature для .NET. Поиск подписей изображений в документах

Как разработчик, вы можете программно подписывать документы, а также проверять, правильно ли подписан документ с помощью правильной подписи. GroupDocs.Signature for .NET API предоставляет множество таких функций и дает вам полный контроль над процессом электронной подписи. Он предоставляет различные реализации электронной подписи, такие как:

  • Текстовые подписи (текст, аннотации, водяные знаки, наклейки)
  • Подпись изображения — с такими параметрами, как эффекты изображения и вращение.
  • Цифровая подпись — на основе цифровых сертификатов.
  • Подпись штрих-кода
  • QR-код Подпись
  • Печать с подписью
  • Подпись метаданных
  • Подпись FormField

В этой статье показано, как разработчики могут искать электронные подписи различных типов в любом документе с помощью C#, используя API GroupDocs.Signature для .NET.

Поиск подписей QR-кода в C#

Ниже приведен простейший метод поиска, который показывает, как искать подписи QR-кода в документе PDF. Вы можете использовать ту же строку кода для поиска в любом из поддерживаемых форматов файлов.

// 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}");
    }
}

Поиск штрих-кода, QR-кода и других подписей на C#

Довольно просто найти подпись штрих-кода, подпись QR-кода, текстовую подпись или даже скрытую подпись метаданных в документе. В приведенном ниже коде показано, как различные типы подписей могут быть извлечены из любого документа на 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.");
    }                
}

Поиск подписи изображения в PDF и захват содержимого в C#

.NET Signature API позволяет не только получать все подписи различных типов, но также захватывает содержимое данных изображений для презентаций, электронных таблиц, текстовых редакторов и документов PDF. Ниже приведен исходный код, показывающий, как получить содержимое изображения после успешного поиска подписи изображения из документа PDF на 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);
        }
    }
}

Ключевые ресурсы для GroupDocs.Signature для .NET

Узнайте больше об API GroupDocs.Signaure для .NET. Вы можете свободно обращаться в службу поддержки, если вам нужна помощь: