DEV Community

Shahzad Ashraf
Shahzad Ashraf

Posted on

Secure PNG Files with Text Signatures in Java – Fast and Easy

Incorporating signatures into digital content goes beyond just verification; it encompasses trust, compliance, and a polished presentation. If you are engaged in image processing within your Java applications, automating the signing of images with text can enhance workflows and improve security. Our latest tutorial delves into the process of signing PNG images using text signatures with the GroupDocs.Signature Cloud Java SDK.

This SDK offers a straightforward and developer-friendly interface for programmatically signing PNG files without the need for local libraries or platform-specific tools. All signing actions are managed through the cloud via a secure Java REST API, enabling developers to ensure consistent performance whether they are in a local development environment or deploying to cloud services.

Our comprehensive article guides Java developers through the whole procedure—from configuring the Cloud SDK and authenticating API requests to applying a text signature and managing the signed output. This solution is perfect for establishing secure document workflows in Java-based image processing applications, digital approval systems, or bespoke signing tools. By integrating the GroupDocs.Signature Cloud SDK, you are embracing a scalable, platform-agnostic method for image security.

Below is a working code example that developers can readily use to implement this functionality in their 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 SignPNGwithText {

    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 PNG images
        SignApi apiInstance = new SignApi(configuration);

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

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

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

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

        // Set signature font properties
        SignatureFont signFont = new SignatureFont();
        signFont.setFontFamily("Arial");
        signFont.setFontSize(18.0);
        signFont.setItalic(true);
        options.setFont(signFont);

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

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

        try {

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

        } catch (Exception e) {

            System.err.println("An error occurred: " + e.getMessage());
        }
    }
}
Enter fullscreen mode Exit fullscreen mode

Top comments (0)