電子簽名是附加到電子傳輸文檔的數字數據。它驗證發件人簽署文檔的意圖。
作為開發人員,您可以以編程方式簽署文檔,還可以驗證文檔是否使用正確的簽名進行了正確簽名。 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 的更多信息。如果您需要任何幫助,您可以自由聯繫支持人員: