---
title: "Add electronic signatures to PDFs on Android | Nutrient Android SDK"
canonical_url: "https://www.nutrient.io/guides/android/signatures/adding-an-electronic-signature/"
md_url: "https://www.nutrient.io/guides/android/signatures/adding-an-electronic-signature.md"
last_updated: "2026-05-18T12:22:04.538Z"
description: "Learn how to add electronic signatures to PDFs on Android using Nutrient Android SDK. Enable end users to sign documents by drawing, typing, or attaching an image. Follow our step-by-step guide for seamless eSignature integration."
---

# How to add electronic signatures to PDFs on Android

This guide explains how to add an electronic signature (eSignature) to a PDF document on Android using Nutrient Android SDK, both through the built-in user interface (UI) and programmatically.

## Adding an electronic signature programmatically

In Nutrient Android SDK, electronic signatures are implemented as PDF [annotations](https://www.nutrient.io/guides/android/annotations/introduction-to-annotations.md), commonly referred to as signature annotations.

Electronic signatures can be either ink or image annotations, created with:

- [`InkAnnotation`](https://www.nutrient.io/api/android/nutrient/com.pspdfkit.annotations/-ink-annotation/index.html) for drawn signatures.

- [`StampAnnotation`](https://www.nutrient.io/api/android/nutrient/com.pspdfkit.annotations/-stamp-annotation/index.html) for image-based signatures.

To apply an eSignature:

1. Use [`setIsSignature(true)`](https://www.nutrient.io/api/android/nutrient/com.pspdfkit.annotations/-ink-annotation/set-is-signature.html) to mark the annotation as a signature.

2. Add it to the document via [`PdfFragment#addAnnotationToPage()`](https://www.nutrient.io/api/android/nutrient/com.pspdfkit.ui/-pdf-fragment/add-annotation-to-page.html).

### Licensing requirements for signature annotations

Creating, updating, and deleting signature annotations requires a license that includes either the **Annotations** component or the **Electronic Signatures** component. If your license includes only the **Electronic Signatures** component (without the **Annotations** component), modifications are restricted to signature annotations exclusively. Any attempt to modify non-signature ink or image annotations (`isSignature` = `false`) or other annotation types will be disallowed.

### Creating an ink signature

To create an ink signature programmatically, use to the following code snippet:

### KOTLIN

```kotlin

val pdfFragment: PdfFragment =...

// Create the ink annotation.
val annotation = InkAnnotation(0)

// Set the line color and width.
annotation.color = Color.RED
annotation.lineWidth = 3f

// Set the stroke data. For example, this would be loaded from end user input on another device.
// This example code is just hardcoding a stroke with three points.
val line = listOf(
    PointF(100f, 100f),
    PointF(150f, 150f),
    PointF(200f, 100f)
)
annotation.lines = listOf(line)

// Mark this ink annotation as a signature.
annotation.setIsSignature(true)

// Add it to the page.
pdfFragment?.addAnnotationToPage(annotation, false)

```

### JAVA

```java

final PdfFragment pdfFragment =...

// Create the ink annotation.
final InkAnnotation annotation = new InkAnnotation(0);

// Set the line color and width.
annotation.setColor(Color.RED);
annotation.setLineWidth(3f);

// Set the stroke data. For example, this would be loaded from end user input on another device.
// This example code is just hardcoding a stroke with three points.
final List<PointF> line = Arrays.asList(
    new PointF(100, 100),
    new PointF(150, 150),
    new PointF(200, 100)
);
annotation.setLines(Collections.singletonList(line));

// Mark this ink annotation as a signature.
annotation.setIsSignature(true);

// Add it to the page.
getPdfFragment().addAnnotationToPage(annotation, false);

```

### Creating an image signature

To create an image signature programmatically, use to the following code snippet:

### KOTLIN

```kotlin

val pdfFragment: PdfFragment =...
val bitmap = BitmapFactory.decodeFile("my-signature.png")

// Create the image annotation.
val annotation = StampAnnotation(0, RectF(50f, 440.0f, 500f, 0.0f), bitmap)

// Mark this image annotation as a signature.
annotation.setIsSignature(true)

// Add it to the page.
pdfFragment?.addAnnotationToPage(annotation, false)

```

### JAVA

```java

final PdfFragment pdfFragment =...
final Bitmap bitmap = BitmapFactory.decodeFile("my-signature.png");

// Create the image annotation.
final StampAnnotation annotation = new StampAnnotation(0,
    new RectF(100, 100, 300, 140),
    bitmap);

// Mark this image annotation as a signature.
annotation.setIsSignature(true);

// Add it to the page.
getPdfFragment().addAnnotationToPage(annotation, false);

```

## Using the built-in UI

If you’re using the SDK with **[Forms](https://www.nutrient.io/guides/android/forms/introduction-to-forms.md)**, end users can initiate the signature creation modal by tapping a signature form field within the document. If no signature form field is present, end users can manually add a signature using the signature tool button.

If the **Annotations** component is included in your license, the signature tool is available within the annotation toolbar.

If the **Annotations** component is not included, the signature tool appears directly in the main toolbar by default. It can also be manually added using [`forceSignatureButtonPositionInMainToolbar`](https://www.nutrient.io/api/android/nutrient/com.pspdfkit.configuration.activity/-pdf-activity-configuration/-builder/force-signature-button-position-in-main-toolbar.html) in the [`PdfActivityConfiguration.Builder`](https://www.nutrient.io/api/android/nutrient/com.pspdfkit.configuration.activity/-pdf-activity-configuration/-builder/index.html).

### Signature creation modal view

When the signature creation modal view is displayed, end users can add a signature using one of three methods:

- **Draw** — End users can create a handwritten signature using a touchscreen or stylus.

- **Attach an image** — End users can attach an existing signature image from their device.

- **Type** — End users can enter their signature as text using a chosen font style.

End users can attach an existing signature image from their device. If the hardware supports it, they can also capture a photo of their handwritten signature on paper for a digital scan. This option is ideal when signing on a device with easy access to stored files.

End users can enter their name and select from a predefined set of font-based signature styles. This method ensures accessibility and is fully compatible with:

- Screen readers such as VoiceOver, TalkBack, NVDA, and JAWS.

- Assistive technologies such as Switch Control on Mac and iOS.

By default, Nutrient provides four signature styles, and you can customize the available options by defining a list of preferred fonts.

### Color options

For both the **Draw** and **Type** options, end users can choose between black and two shades of blue to ensure the signature remains distinguishable from the document background.
---

## Related pages

- [How to save and store electronic signatures on Android](/guides/android/signatures/signature-storage.md)
- [eSign PDFs with a certificate on Android](/guides/android/signatures/using-electronic-signatures-and-digital-signatures-together.md)

