// For complete examples and data files, please go to https://github.com/groupdocs-signature/GroupDocs.Signature-for-Java
// setup Signature configuration
SignatureConfig signConfig = CommonUtilities.getConfiguration();
// instantiating the conversion handler
SignatureHandler<String> handler = new SignatureHandler<String>(signConfig);
//If custom appearance is not set there will be used DefaultAppearance
//User can change any parameter of DefaultAppearance
// text content of an sticker
PdfTextStickerAppearance.getDefaultAppearance().setTitle("Title");
PdfTextStickerAppearance.getDefaultAppearance().setSubject("Subject");
PdfTextStickerAppearance.getDefaultAppearance().setContents("Contents");
// is sticker opened by default
PdfTextStickerAppearance.getDefaultAppearance().setOpened(false);
// an icon of a sticker on a page
PdfTextStickerAppearance.getDefaultAppearance().setIcon(PdfTextStickerIcon.Key);
SignatureOptionsCollection collection = new SignatureOptionsCollection();
//All signatures will have default appearance
// first signature options
PdfSignTextOptions signOptions = new PdfSignTextOptions("John Smith");
signOptions.setSignatureImplementation(PdfTextSignatureImplementation.Sticker);
signOptions.setTop(100);
collection.add(signOptions);
// second signature options
signOptions = new PdfSignTextOptions("Andrew Conan");
signOptions.setSignatureImplementation(PdfTextSignatureImplementation.Sticker);
signOptions.setTop(200);
collection.add(signOptions);
// third signature options
signOptions = new PdfSignTextOptions("Andrew Conan");
signOptions.setSignatureImplementation(PdfTextSignatureImplementation.Sticker);
signOptions.setTop(300);
collection.add(signOptions);
final SaveOptions saveOptions = new SaveOptions();
saveOptions.setOutputType(OutputType.String);
saveOptions.setOutputFileName("signed_output");
// sign document
String signedPath = handler.sign(CommonUtilities.getStoragePath(fileName), collection,saveOptions);
//Reset default appearance to avoid it influence on subsequent signatures
PdfTextStickerAppearance.resetDefaultAppearance();
System.out.println("Signed file path is: " + signedPath);