import com.groupdocs.signature.Signature;
import com.groupdocs.signature.domain.enums.HorizontalAlignment;
import com.groupdocs.signature.domain.enums.VerticalAlignment;
import com.groupdocs.signature.licensing.License;
import com.groupdocs.signature.options.sign.ImageSignOptions;

public class SignXLSXwithImageSignatureUsingJava {
    public static void main(String[] args) throws Exception {

        // Set License to avoid the limitations of Signature library
        License license = new License();
        license.setLicense("GroupDocs.Signature.lic");

        // load the source XLSX file
        Signature signature = new Signature("input.xlsx");
        ImageSignOptions options = new ImageSignOptions("sample.jpg");

        // set signature position
        options.setLeft(100);
        options.setTop(100);
        // set signature rectangle
        options.setWidth(100);
        options.setHeight(30);

        // set signature alignment
        options.setVerticalAlignment(VerticalAlignment.Top);
        options.setHorizontalAlignment(HorizontalAlignment.Right);

        // set rotation
        options.setRotationAngle(45);

        // sign XLSX document and save it
        signature.sign("output.xlsx", options);
    }
}