Please be aware that update method modifies the same document that was passed to constructor of Signature class. The UpdateResult contains list of successfully updated signatures and ones that failed. The Image signature could be failed to update due to several reasons:
if signature object was initialized with constructor by incorrect signature identifier;
if signature object was not found;
there was an error occurred while updating signature in the document.
Here are the steps to update Image signature in the document with GroupDocs.Signature:
Create new instance of Signature class and pass source document path as a constructor parameter;
Select from list ImageSignature object(s) that should be updated;
Call Signature object update method and pass one or several signatures to it.
Analyze UpdateResult result to check whether signatures were updated or not.
Here are the alternative steps to update Image signature in the document with GroupDocs.Signature. This approach is based on saved signatures Id after search or sign methods.
Create new instance of Signature class and pass source document path as a constructor parameter;
Instantiate one or several ImageSignature objects with signature Id(s) passed to constructor;
Call Signature class object update method and pass one or several signatures to it;
Analyze UpdateResult result to check whether signatures were updated or not.
The following table describes changeable properties for Image signatures dependent on document type.
Document Type / Signature Property
Left
Top
Width
Height
Size
IsSignature
Image
Spreadsheet
Pdf
Presentation
Word Processing
Update Image signature in the document after Search
This example shows how to update Image signature that was found using search method.
Signaturesignature=newSignature("sampleSigned.xlsx");ImageSearchOptionsoptions=newImageSearchOptions();// search for image signatures in document
List<ImageSignature>signatures=signature.search(ImageSignature.class,options);List<BaseSignature>bs=newArrayList<BaseSignature>();// adjust signature properties
for(ImageSignaturetemp:signatures){// apply some condition to adjust signature properties
temp.setLeft(temp.getLeft()+100);temp.setTop(temp.getTop()+100);if(temp.getSize()>10000){temp.setSignature(false);}bs.add(temp);}// update all found signatures
UpdateResultupdateResult=signature.update("sampleSigned.xlsx",bs);if(updateResult.getSucceeded().size()==signatures.size()){System.out.print("\nAll signatures were successfully updated!");}else{System.out.print("Successfully updated signatures : "+updateResult.getSucceeded().size());System.out.print("Not updated signatures : "+updateResult.getFailed().size());}System.out.print("List of updated signatures:");for(BaseSignaturetemp:updateResult.getSucceeded()){System.out.print("Signature# Id:"+temp.getSignatureId()+", Location: "+temp.getLeft()+"x"+temp.getTop()+". Size: "+temp.getWidth()+"x"+temp.getHeight());}
Update Image signature in document by known signature Identifier
This example shows how to update Image signature in the document by known signature Id (that was obtained by search or sign method previously).
// initialize Signature instance
Signaturesignature=newSignature("sampleSigned.pdf");// read from some data source signature Id value
String[]signatureIdList=newString[]{"1dd21cf3-b904-4da9-9413-1ff1dab51974","9e386726-a773-4971-b2fc-eaadfce65ffd"};// create list of Barcode Signature by known SignatureId
List<BaseSignature>signatures=newArrayList<BaseSignature>();for(Stringitem:signatureIdList){ImageSignaturetemp=newImageSignature(item);temp.setWidth(150);temp.setHeight(150);temp.setLeft(200);temp.setTop(200);signatures.add(temp);}// update all found signatures
UpdateResultupdateResult=signature.update("sampleSigned.pdf",signatures);if(updateResult.getSucceeded().size()==signatures.size()){System.out.print("\nAll signatures were successfully updated!");}else{System.out.print("Successfully updated signatures : "+updateResult.getSucceeded().size());System.out.print("Not updated signatures : "+updateResult.getFailed().size());}System.out.print("List of updated signatures:");for(BaseSignaturetemp:updateResult.getSucceeded()){System.out.print("Signature# Id:"+temp.getSignatureId()+", Location: "+temp.getLeft()+"x"+temp.getTop()+". Size: "+temp.getWidth()+"x"+temp.getHeight());}
More resources
GitHub Examples
You may easily run the code above and see the feature in action in our GitHub examples:
Along with full-featured .NET library we provide simple, but powerful free Apps. You are welcome to eSign PDF, Word, Excel, PowerPoint documents with free to use online GroupDocs Signature App.
Was this page helpful?
Any additional feedback you'd like to share with us?
Please tell us how we can improve this page.
Thank you for your feedback!
We value your opinion. Your feedback will help us improve our documentation.