GroupDocs.Signature for .NET 22.10 Release Notes

Major Features

The main features of this release are enhancements to the Document Info method and the new Barcode type. The Document Info method was improved to retrieve the list of document Metadata signatures with the optional ability to include standard document metadata information as well. The new composite Barcode type allows to generate the GS1Composite barcode type. For future releases, we will provide additional settings to customize the upper and down barcode type with other options. Besides that, there are few important fixes with Open Document processing files. Below the list of most notable changes in release of GroupDocs.Signature for .NET 21.10:

  • Document information data was upgraded with the Metadata signatures that could include optionally standard document meta information
  • New composite barcode type GS1Composite Barcode was implemented
  • Improved license encryption.
  • Implemented additional global Signature settings flag to include or exclude standard document metadata information.
  • Fixed issues with modifying the digitally signed Open Office documents.
  • The referenced libraries were updated to the latest versions.

Full List of Issues Covering all Changes in this Release

KeySummaryIssue Type
SIGNATURENET-3482Exceptions during modifying the OpenOffice document with Digital signatures ZipEntry ReadHeaderBug
SIGNATURENET-4016Implement list of Metadata for Document Info for all supported file typesFeature
SIGNATURENET-3916Implement new Barcode Type GS1CompositeBarFeature
SIGNATURENET-4028Implement new option for DocumentInfo to include standard document metadata signaturesEnhancement
SIGNATURENET-4064Improve license encryption securityEnhancement

Public Developer Guide examples changes

The following topics from the Developer Guide were changed

eSign PDF with QR Code entries

Public API and Backward Incompatible Changes

Public interface IDocumentInfo was updated with new collection of the Metadata signatures [MetadataSignatures](https://reference.groupdocs.com/signature/net/groupdocs.signature.domain/idocumentinfo/metadatasignatures/

Changes with the interface [IDocumentInfo] with new collection of the Metadata signatures of the document.

/// <summary>
/// Defines document description properties.
/// </summary>
public interface IDocumentInfo
{
    /// <summary>
    /// Collection of document Metadata signatures.
    /// </summary>
    IList<MetadataSignature> MetadataSignatures { get; }
}

Public interface DocumentInfo was updated to implement interface and support collection of the Metadata signatures [MetadataSignatures](https://reference.groupdocs.com/signature/net/groupdocs.signature.domain/documentinfo/metadatasignatures/

Public class SignatureSettings was updated with the new boolean flag to optional include standard metadata signatures into the document collection of metadata signatures

Class [SignatureSettings] contains the following property to get or set.

/// <summary>
/// Represents SMS short message service details.
/// </summary>
public class SignatureSettings
{
    /// <summary>
    /// Gets or sets flag to include into the Metadata List the embedded standard document metadata signatures like Author, Owner, document creation date, modified date, etc.
    /// If this flag is set to false (by default) the GetDocumentInfo will not include these metadata signatures.
    /// When this flag is set to true the document information will include these standard metadata signatures.
    /// </summary>
    public bool IncludeStandardMetadataSignatures { get; set; } = false;
}

The following example demonstrates how to obtain all document metadata signatures.

Obtain the document information with all metadata signatures

public static void Run()
{
    // specify custom settings to include standard document metadata signatures (Author, Owner, Creation date, etc)
    var settings = new SignatureSettings()
    {
        IncludeStandardMetadataSignatures = true
    };
    // create the Signature instance with the settings
    using (Signature signature = new Signature("signedContract.docx", settings))
    {
        IDocumentInfo documentInfo = signature.GetDocumentInfo();
        Console.WriteLine($"Document properties {Path.GetFileName(filePath)}:");
        Console.WriteLine($" - format : {documentInfo.FileType.FileFormat}");
        Console.WriteLine($" - extension : {documentInfo.FileType.Extension}");
        Console.WriteLine($" - size : {documentInfo.Size}");
        Console.WriteLine($" - page count : {documentInfo.PageCount}");
        foreach (PageInfo pageInfo in documentInfo.Pages)
        {
            Console.WriteLine($" - page-{pageInfo.PageNumber} Width {pageInfo.Width}, Height {pageInfo.Height}");
        }

        // display document Metadata signatures information
        Console.WriteLine($"Document Metadata signatures : {documentInfo.MetadataSignatures.Count}");
        foreach (MetadataSignature metadataSignature in documentInfo.MetadataSignatures)
        {
            Console.WriteLine($" - #{metadataSignature.Name} = {metadataSignature.Value}");
        }
    }
}