A Java library to create, apply, verify, and remove digital and electronic signatures from documents, including PDFs, Word, Excel, Images, and more. Supports text, image, barcode, QR code, stamp, metadata, and certificate-based digital signatures.
This repository provides usage examples and demos for GroupDocs.Signature for Java, a powerful API for adding and verifying signatures in Java-based applications. It supports over 90 document formats, enabling developers to streamline digital signing workflows across platforms.
- Apply and verify digital signatures with X.509 certificates
- Add text, image, barcode, QR code, and stamp signatures
- Insert metadata, form field, and timestamp signatures
- Search for or remove existing signatures from documents
- Compatible with Java SE, EE, and Spring-based applications
Signature Type | Description |
---|---|
Digital Signatures | X.509 certificate-based signatures for legal compliance |
Image Signatures | Draw or upload images (PNG, JPEG, SVG, BMP) |
Text Signatures | Add custom text annotations with fonts & styles |
QR-Code Signatures | Generate QR codes with custom data/format |
Barcode Signatures | Add/search/remove barcodes from documents |
Stamp Signatures | Custom stamps with date/user info/company logos |
Metadata Signatures | Hidden signatures for document tracking & authentication |
Form Field Signatures | Interactive signature fields for workflows |
Office Documents:
- Microsoft Word (DOC, DOCX, DOCM, DOT, DOTX, DOTM)
- Excel (XLS, XLSX, XLSM, XLSB, XLT, XLTX, XLTM)
- PowerPoint (PPT, PPTX, PPTM, PPS, PPSX)
- Visio (VSD, VSDX, VSS, VSSX, VST, VSTX)
PDFs & Images:
- PDF (Portable Document Format)
- Images (PNG, JPG, JPEG, BMP, TIFF, GIF, SVG, WEBP)
Other Formats:
- OpenDocument (ODT, ODS, ODP)
- Text files (TXT, RTF, CSV)
- Web formats (HTML, HTM)
- And many more...
Signature signature = new Signature("spreadsheet.xlsx");
DigitalSearchOptions options = new DigitalSearchOptions();
// Search for signatures in document
List<DigitalSignature> signatures = signature.search(DigitalSignature.class, options);
System.out.print("\nSource document contains following signatures.");
for (DigitalSignature digitalSignature : signatures) {
System.out.print("Digital signature found from " + digitalSignature.getSignTime() +
" with validation flag " + digitalSignature.isValid() +
". Certificate SN " + digitalSignature.getCertificate().getType());
}
Signature signature = new Signature("sample.pdf");
DigitalSignOptions options = new DigitalSignOptions("certificate.pfx");
// Set certificate password and details
options.setPassword("1234567890");
options.setReason("Sign");
options.setContact("JohnSmith");
options.setLocation("Office1");
// Set image appearance
options.setImageFilePath("sample.jpg");
options.setAllPages(true);
options.setWidth(80);
options.setHeight(60);
options.setVerticalAlignment(VerticalAlignment.Bottom);
options.setHorizontalAlignment(HorizontalAlignment.Right);
// Set margins
Padding padding = new Padding();
padding.setBottom(10);
padding.setRight(10);
options.setMargin(padding);
// Apply signature
SignResult signResult = signature.sign("signed.pdf", options);
// Print results
System.out.print("List of newly created signatures:");
int number = 1;
for (BaseSignature temp : signResult.getSucceeded()) {
System.out.print("Signature #" + number++ +
": Type: " + temp.getSignatureType() +
" Id: " + temp.getSignatureId() +
", Location: " + temp.getLeft() + "x" + temp.getTop() +
". Size: " + temp.getWidth() + "x" + temp.getHeight());
}
- Official Documentation
- Free Support Forum
- License Terms – Commercial licensing
- Release Notes – Latest updates and changelog
java digital signature
sign pdf java
e-sign java
signature api java
groupdocs signature java
image signature java
verify signature java
electronic signature java
document signing java
sign excel java
sign word java
sign image java
qr code signature java
barcode signature java