Signing JPG Images with Text Signatures in Java Using Cloud REST API



This content originally appeared on DEV Community and was authored by Shahzad Ashraf

Incorporating digital text signatures into image files has evolved beyond mere branding; it is now essential for ensuring security and authenticity in many Java-based business applications. If you are creating a document automation system or overseeing user-generated content, the capability to programmatically sign JPG images can enhance the integrity of your workflow.

With the GroupDocs.Signature Cloud Java SDK, Java developers can now easily sign JPG files with text-based signatures through a straightforward set of REST API calls. This cloud SDK simplifies the traditional signing processes and provides a developer-friendly interface tailored for secure, scalable applications. Whether handling legal image documents, secure identification files, or signed user submissions, this SDK manages everything without adding unnecessary complexity to your codebase.

What distinguishes this SDK is its cloud-native architecture, ensuring easy integration with contemporary Java applications — including those constructed on microservices, containerized frameworks, or serverless environments. While it supports various types of signatures, this tutorial concentrates on text signatures for JPG images, assisting developers in quickly embedding visible, verifiable details into graphics. If your application needs remote image signing, Java REST API connections, or secure image processes, this detailed guide serves as an excellent starting point.

The code snippet below demonstrates how to integrate this functionality into your Java projects:

package com.groupdocs;
import com.groupdocs.cloud.signature.client.*;
import com.groupdocs.cloud.signature.api.*;
import com.groupdocs.cloud.signature.model.*;
import com.groupdocs.cloud.signature.model.SignTextOptions.*;
import com.groupdocs.cloud.signature.model.requests.*;

public class SignJPGwithText {

    public static void main(String[] args) {

        // Configure your API credentials for authentication
        String MyAppKey = "your-app-key"; 
        String MyAppSid = "your-app-sid";
        Configuration configuration = new Configuration(MyAppKey, MyAppSid);

        // Create an instance of SignApi to esign JPG images
        SignApi apiInstance = new SignApi(configuration);

        // Define source file information 
        FileInfo fileInfo = new FileInfo();
        fileInfo.setFilePath("SampleFiles/source.jpg");

        // Set up text esignature properties
        SignTextOptions options = new SignTextOptions();
        options.setSignatureType(SignTextOptions.SignatureTypeEnum.TEXT);
        options.setText("Text signature in JPG");

        // Set position and size
        options.setLeft(200);
        options.setTop(150);
        options.setLocationMeasureType(LocationMeasureTypeEnum.PIXELS);
        options.setWidth(160);
        options.setHeight(80);
        options.setSizeMeasureType(SizeMeasureTypeEnum.PIXELS);

        // Set text color
        Color signColor = new Color();
        signColor.setWeb("Red");
        options.setForeColor(signColor);

        // Define output file path
        SaveOptions outputOptions = new SaveOptions();
        outputOptions.setOutputFilePath("signature/signed.jpg");

        // Apply settings for JPG image signing
        SignSettings settings = new SignSettings();
        settings.setFileInfo(fileInfo);
        settings.addOptionsItem(options);
        settings.setSaveOptions(outputOptions);

        try {

            // Process the JPG esignature request
            CreateSignaturesRequest request = new CreateSignaturesRequest(settings);
            SignResult response = apiInstance.createSignatures(request);

        } catch (Exception e) {
            System.err.println("An error occurred: " + e.getMessage());
        }
    }
}


This content originally appeared on DEV Community and was authored by Shahzad Ashraf