電子簽名是附加到電子傳輸文檔的數字數據。它驗證發件人簽署文檔的意圖。

GroupDocs.Signature for .NET。在文檔中搜索圖像簽名

作為開發人員,您可以以編程方式簽署文檔,還可以驗證文檔是否使用正確的簽名進行了正確簽名。 GroupDocs.Signature for .NET API 提供了許多此類功能,讓您可以完全控制電子簽名過程。它提供了不同的電子簽名實現,例如:

  • 文本簽名(文本、註釋、水印、貼紙)
  • 圖像簽名 - 帶有圖像效果和旋轉等選項。
  • 數字簽名 - 基於數字證書。
  • 條形碼簽名
  • 二維碼簽名
  • 蓋章簽名
  • 元數據簽名
  • 表單域簽名

本文介紹開發人員如何使用 C# 使用 GroupDocs.Signature API for .NET 在任何文檔中搜索各種類型的電子簽名。

C#搜索二維碼簽名

以下是最簡單的搜索方法,展示瞭如何在 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}");
    }
}

在C#中搜索條形碼、二維碼和其他簽名

很容易找到條形碼簽名、二維碼簽名、文本簽名,甚至文檔中隱藏的元數據簽名。下面提到的代碼顯示瞭如何從 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 文檔的圖像數據內容。下面的源代碼展示瞭如何在C#中從PDF文檔中成功搜索圖片簽名後抓取圖片內容。

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 for .NET 的關鍵資源

探索有關 GroupDocs.Signaure for .NET API 的更多信息。如果您需要任何幫助,您可以自由聯繫支持人員: