GroupDocs.Signature provides the ability to search for multiple types of electronic signatures in documents simultaneously. This allows you to find different types of signatures like text, image, digital, barcode, QR code, and form field signatures in a single search operation.
How to Search for Multiple Signature Types
The Signature class provides the Search method which allows you to search for multiple types of signatures in documents. Here’s how to use it:
Create a new instance of the Signature class and pass the source document path as a parameter.
Create search options for each type of signature you want to search for.
Call the Search method of the Signature class instance and pass the search options to it.
Process the search results.
Here’s an example of how to search for multiple types of signatures in a document:
fromgroupdocs.signatureimportSignaturefromgroupdocs.signature.optionsimportTextSearchOptions,ImageSearchOptions,BarcodeSearchOptions,QrCodeSearchOptions,FormFieldSearchOptionsfromgroupdocs.signature.domainimportTextSignature,ImageSignature,BarcodeSignature,QrCodeSignature,FormFieldSignature# Initialize Signature with input documentwithSignature("sample.pdf")assignature:# Create search options for different signature typestext_options=TextSearchOptions()image_options=ImageSearchOptions()barcode_options=BarcodeSearchOptions()qr_code_options=QrCodeSearchOptions()form_field_options=FormFieldSearchOptions()# Search for signaturestext_result=signature.search(text_options)image_result=signature.search(image_options)barcode_result=signature.search(barcode_options)qr_code_result=signature.search(qr_code_options)form_field_result=signature.search(form_field_options)# Process found signaturesprint(f"Found {len(text_result)} text signatures")fortext_signatureintext_result:print(f"Text: {text_signature.text}")print(f"Page: {text_signature.page_number}")print(f"\nFound {len(image_result)} image signatures")forimage_signatureinimage_result:print(f"Image Size: {image_signature.width}x{image_signature.height}")print(f"Page: {image_signature.page_number}")print(f"\nFound {len(barcode_result)} barcode signatures")forbarcode_signatureinbarcode_result:print(f"Barcode Type: {barcode_signature.encode_type}")print(f"Barcode Text: {barcode_signature.text}")print(f"Page: {barcode_signature.page_number}")print(f"\nFound {len(qr_code_result)} QR code signatures")forqr_code_signatureinqr_code_result:print(f"QR Code Text: {qr_code_signature.text}")print(f"Page: {qr_code_signature.page_number}")print(f"\nFound {len(form_field_result)} form field signatures")forform_field_signatureinform_field_result:print(f"Field Name: {form_field_signature.name}")print(f"Field Type: {form_field_signature.type}")print(f"Field Value: {form_field_signature.value}")
Advanced Search Options
You can customize the search process for each signature type by setting specific options:
fromgroupdocs.signatureimportSignaturefromgroupdocs.signature.optionsimportTextSearchOptions,ImageSearchOptions,BarcodeSearchOptions,QrCodeSearchOptions,FormFieldSearchOptionsfromgroupdocs.signature.domainimportTextSignature,ImageSignature,BarcodeSignature,QrCodeSignature,FormFieldSignature# Initialize Signature with input documentwithSignature("sample.pdf")assignature:# Create search options for different signature typestext_options=TextSearchOptions()text_options.text="John Doe"# Search for specific textimage_options=ImageSearchOptions()image_options.min_content_size=100# Minimum image size in pixelsbarcode_options=BarcodeSearchOptions()barcode_options.encode_type="Code128"# Search for specific barcode typeqr_code_options=QrCodeSearchOptions()qr_code_options.text="https://example.com"# Search for specific QR code textform_field_options=FormFieldSearchOptions()form_field_options.field_names=["signature1","signature2"]# Search for specific form fields# Search for signaturestext_result=signature.search(text_options)image_result=signature.search(image_options)barcode_result=signature.search(barcode_options)qr_code_result=signature.search(qr_code_options)form_field_result=signature.search(form_field_options)# Process found signatures# ... (same as above)
Additional Resources
GitHub Examples
You may easily run the code above and see the feature in action in our examples: