Skip to content
Switch branches/tags

Digital Signature API for .NET

GroupDocs.Signature for .NET provides the ability to add stamps, barcodes and QR-codes, text, image, metadata, form field and digital signatures to documents of various formats. Sign, search and verify document signatures for all popular document formats and set different signing options to suit your needs.

Directory Description
Docs Product documentation containing Developer's Guide, Release Notes & more.
Demos Open source web based projects that demonstrate the salient features of GroupDocs.Signature. Source code for the live demos hosted at
Examples C# based examples and sample files that will help you quickly started.
Plugins Visual Studio plugins related to GroupDocs.Signature.

Document e-Signing Features

  • Create and add signatures to documents of various formats.
  • Specify visual attributes of signatures, such as, color, font, margins and more.
  • Search and fetch list of signatures & certificates.
  • Determine if the document contains signatures meeting a specified criterion.
  • Distinguish created signatures from the actual document.
  • Put encrypted text into QR-code signature or embed custom data objects.
  • Extract basic information about the document.
  • Generate image representation of document pages for preview.

Supported Signature Types

  • Text stamps
  • Text labels
  • Text as image signature
  • Image signature
  • Digital signature
  • Barcode signature
  • QR-code signature
  • Metadata signature
  • Form-field signature

Supported Formats for Electronic Signature

Microsoft Word: DOC, DOCM, DOCX, DOT, DOTM, DOTX
Microsoft Excel: XLSX, XLS, XLSB, XLSM, XLTX, XLTM
Microsoft PowerPoint: PPTX, PPTM, PPT, PPSX, PPSM, PPS, POTX, POTM
OpenOffice: ODT, OTT, ODS, OTS, ODP, OTP
CorelDraw: CDR, CMX
Photoshop: PSD
eBook: DJVU
Metafile: WMF
Portable: PDF

Develop & Deploy GroupDocs.Signature Anywhere

Microsoft Windows: Windows Desktop & Server (x86, x64), Windows Azure
macOS: Mac OS X
Linux: Ubuntu, OpenSUSE, CentOS, and others
Development Environments: Microsoft Visual Studio, Xamarin.Android, Xamarin.IOS, Xamarin.Mac, MonoDevelop
Supported Frameworks: .NET Standard 2.0, .NET Framework 2.0 or higher, .NET Core 2.0 or higher, Mono Framework 1.2 or higher

Get Started with GroupDocs.Signature for .NET

Are you ready to give GroupDocs.Signature for .NET a try? Simply execute Install-Package GroupDocs.Signature from Package Manager Console in Visual Studio to fetch & reference GroupDocs.Signature assembly in your project. If you already have GroupDocs.Signature for .Net and want to upgrade it, please execute Update-Package GroupDocs.Signature to get the latest version.

Sign a PDF File and Save it as DOCX

using (Signature signature = new Signature("sample.pdf"))
    // create QRCode option with predefined QRCode text
    QRCodeSignOptions signOptions = new QRCodeSignOptions("JohnSmith")
        EncodeType = QRCodeTypes.QR,
        Left = 100,
        Top = 100
    PdfSaveOptions pdfSaveOptions = new PdfSaveOptions()
        FileFormat = PdfSaveFileFormat.DocX,
        OverwriteExistingFiles = true
    // sign document to file
    signature.Sign("SignedPdf.docx", signOptions, pdfSaveOptions);

Search & Delete Signatures from DOCX File

// initialize Signature instance
using (Signature signature = new Signature("signed.docx"))
    BarcodeSearchOptions options = new BarcodeSearchOptions();
    List<BarcodeSignature> signatures = signature.Search<BarcodeSignature>(options);
    List<BaseSignature> signaturesToDelete = new List<BaseSignature>();
    // collect signatures to delete
    foreach (BarcodeSignature temp in signatures)
        if (temp.Text.Contains("John"))
    // delete signatures
    DeleteResult deleteResult = signature.Delete(signaturesToDelete);
    if (deleteResult.Succeeded.Count == signaturesToDelete.Count)
        Console.WriteLine("All signatures were successfully deleted!");
        Console.WriteLine($"Successfully deleted signatures : {deleteResult.Succeeded.Count}");
        Console.WriteLine($"Not deleted signatures : {deleteResult.Failed.Count}");
    Console.WriteLine("List of deleted signatures:");
    foreach (BaseSignature temp in deleteResult.Succeeded)
        Console.WriteLine($"Signature# Id:{temp.SignatureId}, Location: {temp.Left}x{temp.Top}. Size: {temp.Width}x{temp.Height}");

Home | Product Page | Documentation | Demo | API Reference | Examples | Blog | Search | Free Support | Temporary License