eSign PDF with Metadata signature

Overview

GroupDocs.Signature provides PdfMetadataSignature class to specify different Metadata signature objects for MetadataSignOptions instance. PDF document metadata is hidden attributes, some of them are visible only over viewing standard document properties like Author, Creation Date, Producer, Entry, Keywords etc.
PDF document metadata contains 3 fields: Name, Value and TagPrefix, combination of Name and Tag prefix should be unique.

PDF document metadata could keep big amount of data that provides ability to keep serialized custom objects with additional encryption in there. See Advanced examples how to embed secure data.

Here are the steps to add metadata signatures into PDF document with GroupDocs.Signature:

How to eSign PDF with Metadata signature

This example shows how to sign PDF document with several e-signatures as metadata.

using (Signature signature = new Signature("sample.pdf"))
{
    MetadataSignOptions options = new MetadataSignOptions();

    options
       .Add(new PdfMetadataSignature("Author", "Mr.Scherlock Holmes")) // String value
       .Add(new PdfMetadataSignature("CreatedOn", DateTime.Now))       // DateTime values
       .Add(new PdfMetadataSignature("DocumentId", 123456))            // Integer value
       .Add(new PdfMetadataSignature("SignatureId", 123.456D))         // Double value
       .Add(new PdfMetadataSignature("Amount", 123.456M))              // Decimal value
       .Add(new PdfMetadataSignature("Total", 123.456F));              // Float value
    // add these signatures to options
    options.Signatures.AddRange(signatures);
    signature.Sign("SampleSigned.pdf", options);
}

How to eSign PDF with standard metadata signatures

This example shows how to sign PDF document with standard standard embedded PDF document metadata signatures. If PDF metadata signature already exists with same name its value will be overwritten.

using (Signature signature = new Signature("sample.pdf"))
{
    MetadataSignOptions options = new MetadataSignOptions();
    // Using standard Pdf Metadata Signatures with new values
    MetadataSignature[] signatures = new MetadataSignature[]
    {
        PdfMetadataSignatures.Author.Clone("Mr.Scherlock Holmes"),
        PdfMetadataSignatures.CreateDate.Clone(DateTime.Now.AddDays(-1)),
        PdfMetadataSignatures.MetadataDate.Clone(DateTime.Now.AddDays(-2)),
        PdfMetadataSignatures.CreatorTool.Clone("GD.Signature-Test"),
        PdfMetadataSignatures.ModifyDate.Clone(DateTime.Now.AddDays(-13)),
        PdfMetadataSignatures.Producer.Clone("GroupDocs-Producer"),
        PdfMetadataSignatures.Entry.Clone("Signature"),
        PdfMetadataSignatures.Keywords.Clone("GroupDocs, Signature, Metadata, Creation Tool"),
        PdfMetadataSignatures.Title.Clone("Metadata Example"),
        PdfMetadataSignatures.Subject.Clone("Metadata Test Example"),
        PdfMetadataSignatures.Description.Clone("Metadata Test example description"),
        PdfMetadataSignatures.Creator.Clone("GroupDocs.Signature"),
    };
    options.Signatures.AddRange(signatures);
    // sign document to file
    signature.Sign("sample_signed.pdf", options);
}

Advanced Usage Topics

To learn more about document eSign features, please refer to the advanced usage section.

More resources

GitHub Examples

You may easily run the code above and see the feature in action in our GitHub examples:

Free Online Apps

Along with the full-featured .NET library, we provide simple but powerful free online apps.

To sign PDF, Word, Excel, PowerPoint, and other documents you can use the online apps from the GroupDocs.Signature App Product Family.