GroupDocs.Signature supports verification of documents for different signature types. This approach requires to add all required verification options to list.
Here are the steps to verify document for multiple signatures with GroupDocs.Signature:
Create new instance of Signature class and pass source document path or stream as a constructor parameter.
This example shows how to search for different signature types in the document.
importgroupdocs.signatureassignaturefromgroupdocs.signature.optionsimport(TextVerifyOptions,BarcodeVerifyOptions,QrCodeVerifyOptions,DigitalVerifyOptions)fromgroupdocs.signature.domain.enumsimportTextMatchType,TextSignatureImplementation# Initialize signaturewithsignature.Signature("sampleSigned.pdf")assign:# Create text verification optionstext_verify_options=TextVerifyOptions()text_verify_options.all_pages=True# this value is set by defaulttext_verify_options.signature_implementation=TextSignatureImplementation.STAMPtext_verify_options.text="John"text_verify_options.match_type=TextMatchType.CONTAINS# Create barcode verification optionsbarcode_verify_options=BarcodeVerifyOptions()barcode_verify_options.all_pages=True# this value is set by defaultbarcode_verify_options.text="John"barcode_verify_options.match_type=TextMatchType.CONTAINS# Create QR code verification optionsqrcode_verify_options=QrCodeVerifyOptions()qrcode_verify_options.all_pages=True# this value is set by defaultqrcode_verify_options.text="John"qrcode_verify_options.match_type=TextMatchType.CONTAINS# Create digital verification optionsdigital_verify_options=DigitalVerifyOptions("certificate.pdf")digital_verify_options.comments="Test comment"# Create list of verification optionsverify_options=[text_verify_options,barcode_verify_options,qrcode_verify_options,digital_verify_options]# Verify document signaturesresult=sign.verify(verify_options)ifresult.is_valid:print("\nDocument was verified successfully!")else:print("\nDocument failed verification process.")
More resources
GitHub Examples
You may easily run the code above and see the feature in action in our GitHub examples: