GroupDocs.Signature provides DigitalSignature class to manipulate digital electronic signatures and delete them from the documents.
Please be aware that Delete method modifies the same document that was passed to constructor of the Signature class.
Important information. Please be aware that digitally signed documents with valid certificates (pfx files) are secured and verified. Changing digitally signed document makes them untrusted from the digital verification perspective. At this moment only Pdf documents support deletion of the specific digital signatures in case of many ones were added. Most documents support deletion of all digital signatures at once without separate certificates removal. It’s strongly recommened to use deletion of electronic digital signatures by signature type Digital. See example [Delete Signatures of the certain type]
Here are the steps to delete Digital signature from the document with GroupDocs.Signature:
Create new instance of Signature class and pass source document path or its stream as a constructor parameter;
Select from list DigitalSignature object(s) that should be removed from the document;
Call Signature object Delete method and pass one or several signatures to it.
This example shows how to delete Digital signature that was found using Search method.
using(Signaturesignature=newSignature("signed.pdf")){// search for electronic Digital signatures in the documentList<DigitalSignature>signatures=signature.Search<DigitalSignature>(SignatureType.Digital);if(signatures.Count>0){DigitalSignaturedigitalSignature=signatures[0];boolresult=signature.Delete(digitalSignature);if(result){Console.WriteLine($"Digital signature #{digitalSignature.Thumbprint} from the {digitalSignature.SignTime.ToShortDateString()} was deleted.");}else{Helper.WriteError($"Signature was not deleted from the document! Signature# {digitalSignature.Thumbprint} was not found!");}}}
Advanced Usage Topics
To learn more about document eSign features, please refer to the Advanced usage section.
More resources
GitHub Examples
You may easily run the code above and see the feature in action in our GitHub examples: