// For complete examples and data files, please go to https://github.com/groupdocs-signature/GroupDocs.Signature-for-Java
SignatureConfig signConfig = CommonUtilities.getConfiguration();
// instantiating the conversion handler
SignatureHandler<String> handler = new SignatureHandler<String>(signConfig);
//setup size and position
PdfSignImageOptions signOptions = new PdfSignImageOptions(CommonUtilities.getImagesPath("sign.png"));
// setup image size
signOptions.setWidth(100);
signOptions.setHeight(100);
// setup pages to sign
signOptions.getPagesSetup().setFirstPage(true);
signOptions.getPagesSetup().setEvenPages(true);
signOptions.getPagesSetup().getPageNumbers().add(7);
signOptions.getPagesSetup().getPageNumbers().add(9);
signOptions.getPagesSetup().setLastPage(true);
// specify load options
LoadOptions loadOptions = new LoadOptions();
// specify save options
final CellsSaveOptions saveOptions = new CellsSaveOptions();
saveOptions.setOutputType(OutputType.String);
saveOptions.setOutputFileName("signed_output");
// sign document
String signedPath = handler.sign(CommonUtilities.getStoragePath(fileName), signOptions, loadOptions, saveOptions);
System.out.println("Signed file path is: " + signedPath);