Some test text!

Sign a documentkeyboard_arrow_down

Sign a PDF document in UWP

To sign an existing approval signature field in a PDF Document:

// Open an existing PDF
using (PDFDoc doc = new PDFDoc(docpath))
    // Create a new instance of the SignatureHandler.
    MySignatureHandler sh = new MySignatureHandler();

    // Add the SignatureHandler instance to PDFDoc, making sure to keep track of it using the ID returned.
    var sigHandlerId = doc.AddSignatureHandler(sh);

    // Retrieve the unsigned approval signature field.
    Field found_approval_field = doc.GetField(approval_field_name);

    Widget widgetAnnot = new Widget(found_approval_field.GetSDFObj());

    // Tell PDFNet to use the SignatureHandler created to sign the new signature form field.
    Obj sigDict = found_approval_field.UseSignatureHandler(sigHandlerId);
    // (OPTIONAL) Add more information to the signature dictionary.
    sigDict.PutName("SubFilter", "adbe.pkcs7.detached");
    sigDict.PutString("Name", "PDFTron");
    sigDict.PutString("Location", "Vancouver, BC");
    sigDict.PutString("Reason", "Document approval.");
    // (OPTIONAL) Add an appearance to the signature field.
    ElementWriter apWriter = new ElementWriter();
    ElementBuilder apBuilder = new ElementBuilder();
    Image sigImg = Image.Create(doc.GetSDFDoc(), image_file_path);
    double w = sigImg.GetImageWidth(), h = sigImg.GetImageHeight();
    Element apElement = apBuilder.CreateImage(sigImg, 0, 0, w, h);
    Obj apObj = apWriter.End();
    apObj.PutRect("BBox", 0, 0, w, h);
    apObj.PutName("Subtype", "Form");
    apObj.PutName("Type", "XObject");
    apElement = apBuilder.CreateForm(apObj);
    apObj = apWriter.End();
    apObj.PutRect("BBox", 0, 0, w, h);
    apObj.PutName("Subtype", "Form");
    apObj.PutName("Type", "XObject");

    // Save the PDFDoc. Once the method below is called, PDFNet will also sign the document using the information
    // provided.
    await doc.SaveAsync(output_file_path, 0);

 class MySignatureHandler : ISignatureHandler
        private List<byte> m_data = null;

        public MySignatureHandler()
            m_data = new List<byte>();

        public void AppendData(byte[] data)

        public byte[] CreateSignature()
            return (new byte[] { 0x00, 0x00, 0x00, 0x00 });

        public String GetName()
            return "Adobe.PPKLite";

        public bool Reset()
            return (true);

Digitally sign PDF files
Full code sample which demonstrates using the digital signature API to digitally sign and/or certify PDF documents.

linkAbout Adding An Approval Signature to a PDF Document

The PDFTron SDK enables approval signatures in PDF documents using a Digital Certificate, in accordance with the latest PDF specification. By leveraging public key infrastructure (PKI) technology, with a certificate issued by a trusted certificate authority (CA), a signer can use a certificate-based digital ID to guarantee the authenticity of a signature. Placement of a digital signature using a certificate can also guarantee that a document was not modified since the signature was placed, ensuring the authenticity of the document.

Above is an example of a document containing a certified signature, guaranteed by a certificate generated by

Get the answers you need: Support


Free Trial

Get unlimited trial usage of PDFTron SDK to bring accurate, reliable, and fast document processing capabilities to any application or workflow.

Select a platform to get started with your free trial.

Unlimited usage. No email address required.