電子署名は、電子的に送信されたドキュメントに添付されるデジタルデータです。送信者がドキュメントに署名する意図を確認します。
開発者は、プログラムでドキュメントに署名したり、ドキュメントが正しい署名で適切に署名されているかどうかを確認したりできます。 ** GroupDocs.Signature for .NET ** APIは、そのような多くの機能を提供し、電子署名プロセスを完全に制御できるようにします。次のようなさまざまな電子署名の実装を提供します。
- テキスト署名(テキスト、注釈、透かし、ステッカー)
- 画像署名-画像効果や回転などのオプションがあります。
- デジタル署名-デジタル証明書に基づいています。
- バーコード署名
- QRコード署名
- スタンプ署名
- メタデータ署名
- FormField署名
この記事では、開発者がGroupDocs.Signature API for .NETを使用して、C#で任意のドキュメント内のさまざまなタイプの電子署名を検索する方法を示します。
C#でQRコードの署名を検索する
以下は、PDFドキュメント内のQRコード署名を検索する方法を示す最も簡単な検索方法です。同じコード行を使用して、サポートされている任意のファイル形式で検索できます。
// 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#でバーコード、QRコード、その他の署名を検索する
バーコード署名、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署名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.Signaturefor.NETの主要なリソース
GroupDocs.Signaure for.NETAPIの詳細をご覧ください。ヘルプが必要な場合は、サポートに自由に連絡できます。