---
title: "eSign PDF with Certificate on iOS | Nutrient SDK"
canonical_url: "https://www.nutrient.io/guides/ios/signatures/using-electronic-signatures-and-digital-signatures-together/"
md_url: "https://www.nutrient.io/guides/ios/signatures/using-electronic-signatures-and-digital-signatures-together.md"
last_updated: "2026-06-09T10:25:14.484Z"
description: "ESign PDF with Certificate on iOS | guide for Nutrient iOS SDK with detailed instructions and code examples."
---

# eSign PDFs with a Certificate on iOS

This guide shows how Electronic Signatures and Digital Signatures can be used together.

To let a user create a signature drawing using the Electronic Signatures UI, which you’ll in turn use to create a digital signature, you can present a [`SignatureCreationViewController`](https://www.nutrient.io/api/ios/documentation/pspdfkitui/signaturecreationviewcontroller) and implement its delegate, [`SignatureCreationViewControllerDelegate`](https://www.nutrient.io/api/ios/documentation/pspdfkitui/signaturecreationviewcontrollerdelegate), and get a callback to when the user finished. You can use the `drawView` property on the view controller to extract the drawn image from it.

Using this in practice could look something like this:

```swift

let signatureController = SignatureCreationViewController()
var configuration = SignatureCreationViewController.Configuration()
configuration.availableModes = [.draw]
signatureController.configuration = configuration
signatureController.delegate = self
pdfController.present(signatureController, animated: true)

func signatureCreationViewControllerDidFinish(_ signatureController: SignatureCreationViewController) {
	 signatureController.dismiss(animated: true)
	 guard let signatureFormElement = document.annotations(at: pageIndex, type: SignatureFormElement.self).first else { return }
     let url = URL(fileURLWithPath: NSTemporaryDirectory().appending("\(UUID().uuidString).pdf"))

     guard let pageInfo = document.pageInfoForPage(at: 0) else { return }
     let valueLines = signatureController.drawView.pointSequences.map { $0.map({ NSValue.valueWithDrawingPoint($0) }) }
     let lines = ConvertViewLines(pdfLines: valueLines, pageInfo: pageInfo, viewBounds: CGRect(origin:.zero, size: pageInfo.size))
     let inkAnnotation = InkAnnotation(lines: lines.map { $0.map({ $0.drawingPointValue }) })

     // Create the `UIImage` from the ink annotation in your `SignatureViewController`.
     guard let image = inkAnnotation.image(size: inkAnnotation.boundingBox.size, options: nil) else { return }

     let appearance = PDFSignatureAppearance { builder in
          builder.signatureGraphic = Annotation.AppearanceStream(image: image)
     }
     let p12data: Data // PSCKS12 data.
     let p12 = PKCS12(data: p12data)
     Task {
         let (certificates, privateKey) = try p12.unlockCertificateChain(withPassword: "test")
         try await document.sign(formElement: signatureFormElement, configuration: SigningConfiguration(dataSigner: privateKey, certificates: certificates, appearance: appearance), outputDataProvider: FileDataProvider(fileURL: url))
         pdfController.document = Document(url: url)
    }

```
---

## Related pages

- [How to add electronic signatures to PDFs on iOS](/guides/ios/signatures/adding-an-electronic-signature.md)
- [Save and store electronic signatures on iOS](/guides/ios/signatures/signature-storage.md)

