Stamp signatures are essential for authenticating documents, particularly for digitally processed Word documents such as DOCX files. They provide a clear and legally valid method for confirming the origin, endorsement, or status of a document. For Java developers creating document management applications or workflow automation tools, having an effective way to programmatically apply stamp signatures can be a significant benefit.
In our recent article, we guide you on how to incorporate stamp signatures into DOCX files using the GroupDocs.Signature Cloud Java SDK. With just a few straightforward REST API calls, you can embed cloud-based document signing directly into your Java applications. This eliminates the reliance on large desktop applications or manual processes, enhancing the scalability, security, and user-friendliness of your apps. The SDK enables full customization of the stamp's appearance — including its position, font style, background images, and more — providing developers with complete control over the signature output.
This method is particularly advantageous for teams developing Java-based document automation solutions, e-signature processes, or Java REST API integrations. By processing documents in the cloud, applying visual stamp signatures, and upholding security protocols throughout your infrastructure, you gain both adaptability and assurance in managing your files. If you're working on projects ranging from enterprise-level signing solutions to internal approval workflows, this in-depth article is certainly worth reading.
Here’s a functional code example to help you get started right away:
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.OptionsBase.*;
import com.groupdocs.cloud.signature.model.SignImageOptions.*;
import com.groupdocs.cloud.signature.model.requests.*;
public class SignDOCXwithStamp {
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 sign DOCX with stamp
SignApi apiInstance = new SignApi(configuration);
// Define the source file
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("SampleFiles/source.docx");
// Set up stamp signature options
SignStampOptions options = new SignStampOptions();
options.setSignatureType(SignatureTypeEnum.STAMP);
Color darkRed = new Color();
darkRed.setWeb("DarkRed");
Color royalBlue = new Color();
royalBlue.setWeb("RoyalBlue");
Color goldColor = new Color();
goldColor.setWeb("Gold");
Color darkOrange = new Color();
darkOrange.setWeb("DarkOrange");
Color bgWhite = new Color();
bgWhite.setWeb("White");
// Set signature positioning
options.setLeft(100);
options.setTop(100);
options.setWidth(200);
options.setHeight(200);
options.setLocationMeasureType(LocationMeasureTypeEnum.PIXELS);
options.setSizeMeasureType(SizeMeasureTypeEnum.PIXELS);
options.setRotationAngle(0);
Padding padding = new Padding();
padding.setAll(5);
options.setMargin(padding);
options.setMarginMeasureType(MarginMeasureTypeEnum.PIXELS);
// Define stamp signature appearance
options.setBackgroundColor(bgWhite);
// Outer line text
StampLine outerLines = new StampLine();
outerLines.setText("GroupDocs Cloud eSign API");
SignatureFont outerLineFont = new SignatureFont();
outerLineFont.setFontFamily("Arial");
outerLineFont.setFontSize(12.0);
outerLineFont.setBold(true);
outerLines.setFont(outerLineFont);
outerLines.setTextBottomIntent(3);
outerLines.setTextColor(goldColor);
outerLines.setTextRepeatType(StampLine.TextRepeatTypeEnum.FULLTEXTREPEAT);
outerLines.setBackgroundColor(bgWhite);
outerLines.setHeight(20);
BorderLine outerLineBorder1 = new BorderLine();
outerLineBorder1.setColor(darkRed);
outerLineBorder1.setStyle(BorderLine.StyleEnum.LONGDASH);
outerLineBorder1.setTransparency(0.0);
outerLineBorder1.setWeight(2.0);
outerLines.setInnerBorder(outerLineBorder1);
BorderLine outerLineBorder2 = new BorderLine();
outerLineBorder2.setColor(darkOrange);
outerLineBorder2.setStyle(BorderLine.StyleEnum.LONGDASHDOT);
outerLineBorder2.setTransparency(0.3);
outerLineBorder2.setWeight(1.0);
outerLines.setOuterBorder(outerLineBorder2);
outerLines.setVisible(true);
options.addOuterLinesItem(outerLines);
// Inner line text
StampLine innerLine = new StampLine();
innerLine.setText("Certified");
SignatureFont innerLineFont = new SignatureFont();
innerLineFont.setFontFamily("Arial");
innerLineFont.setFontSize(16.0);
innerLineFont.setBold(true);
innerLine.setFont(innerLineFont);
innerLine.setTextBottomIntent(2);
innerLine.setTextColor(goldColor);
innerLine.setTextRepeatType(StampLine.TextRepeatTypeEnum.FULLTEXTREPEAT);
innerLine.setBackgroundColor(royalBlue);
innerLine.setHeight(20);
BorderLine innerLineBorder1 = new BorderLine();
innerLineBorder1.setColor(darkRed);
innerLineBorder1.setStyle(BorderLine.StyleEnum.LONGDASH);
innerLineBorder1.setTransparency(0.0);
innerLineBorder1.setWeight(2.0);
innerLine.setInnerBorder(innerLineBorder1);
BorderLine innerLineBorder2 = new BorderLine();
innerLineBorder2.setColor(darkOrange);
innerLineBorder2.setStyle(BorderLine.StyleEnum.DOT);
innerLineBorder2.setTransparency(0.5);
innerLineBorder2.setWeight(2.0);
innerLine.setOuterBorder(innerLineBorder2);
innerLine.setVisible(true);
options.addInnerLinesItem(innerLine);
// Apply signature to all pages
options.setPage(1);
options.setAllPages(true);
SaveOptions saveOptions = new SaveOptions();
saveOptions.setOutputFilePath("signature/signed.docx");
SignSettings settings = new SignSettings();
settings.setFileInfo(fileInfo);
settings.addOptionsItem(options);
settings.setSaveOptions(saveOptions);
try
{
// Process the stamp signature request
CreateSignaturesRequest request = new CreateSignaturesRequest(settings);
SignResult response = apiInstance.createSignatures(request);
} catch (Exception e) {
System.err.println("An error occurred: " + e.getMessage());
}
}
}
Top comments (0)