GroupDocs.Signature for Python via .NET provides functionality to verify text signatures in documents. This guide demonstrates how to verify text signatures using Python.
Basic Usage Example
Here’s a simple example showing how to verify text signatures in a document. The is_valid property of the returned VerificationResult is True when the document contains text signatures that match the TextVerifyOptions:
fromgroupdocs.signatureimportSignaturefromgroupdocs.signature.domainimportTextMatchTypefromgroupdocs.signature.optionsimportTextVerifyOptionsdefverify_text_signatures():withSignature("signed.pdf")assignature:options=TextVerifyOptions()options.all_pages=True# this value is set by defaultoptions.text="John Smith"options.match_type=TextMatchType.CONTAINSresult=signature.verify(options)ifresult.is_valid:print(f"Document was verified successfully: {len(result.succeeded)} matching text signature(s).")else:print("Document failed verification process.")if__name__=="__main__":verify_text_signatures()
signed.pdf is the sample file used in this example. Click here to download it.
Document was verified successfully: 1 matching text signature(s).
Here’s an example showing more advanced verification options: an exact text match, the TextSignatureImplementation to check (NATIVE, IMAGE, ANNOTATION, STICKER, FORM_FIELD or WATERMARK; NATIVE is the default) and the page to verify. The succeeded property of the result lists the text signatures that passed verification:
fromgroupdocs.signatureimportSignaturefromgroupdocs.signature.domainimportTextMatchType,TextSignatureImplementationfromgroupdocs.signature.optionsimportTextVerifyOptionsdefverify_text_signature_exact_match():withSignature("signed.pdf")assignature:options=TextVerifyOptions()options.text="John Smith"options.match_type=TextMatchType.EXACT# require exact match# Check text signatures that are part of the page contentoptions.signature_implementation=TextSignatureImplementation.NATIVE# Verify the first page only (page numbers start at 1)options.all_pages=Falseoptions.page_number=1result=signature.verify(options)print(f"Document is valid: {result.is_valid}")fortext_signatureinresult.succeeded:print(f"Verified {text_signature.signature_implementation.name} text signature '{text_signature.text}'")if__name__=="__main__":verify_text_signature_exact_match()
signed.pdf is the sample file used in this example. Click here to download it.
Document is valid: True
Verified NATIVE text signature 'John Smith'