GroupDocs.Signature for .NET 23.1 Release Notes

The main feature of this release is the implementation of the process metrics that provides statistic on processing time, incoming and outgoing document size, the number of signatures, etc. The IResult interface was enhanced to implement these values. Also, the release includes the changes to fix the Word Processing preview under the .Net Core on Linux platforms, fix on Spreadsheet page size calculation and correction on forming the PNG output format when exporting the document pages as images. Below is the list of the most notable changes in the release of GroupDocs.Signature for .NET 23.1:

  • Process metrics were implemented for Sign, Update, Delete, Search and Verify methods
  • Fixed the exception by previewing the Word Processing document in Jpg format
  • Document export as image method was fixed to provide accurate PNG format files
  • The Page size property of the DocumentInfo was fixed for Spreadsheet documents
  • Trace logging was extended with informational messages for each method of working with a particular signature
  • Referenced libraries and dependencies were updated

SignResult implements product metrics properties of the IResult interface

The following example demonstrates how to analyze IResult metrics.

public static void Run()
{
    using (Signature signature = new Signature("sample.pdf"))
    {
        // create QRCode option with predefined QRCode text
        QrCodeSignOptions options = new QrCodeSignOptions("JohnSmith");

        // sign document to file
        SignResult signResult = signature.Sign("output.pdf", options);

        // analyze SignResult (IResult properties)
        Console.WriteLine($"Sign-process was executed for {signResult.ProcessingTime} mls");
        Console.WriteLine($"Input document size {signResult.SourceDocumentSize} bytes");
        Console.WriteLine($"Output document size {signResult.DestinDocumentSize} bytes");
        Console.WriteLine($"Total processed signatures {signResult.TotalSignatures}");
        if (signResult.Failed.Count == 0)
        {
            Console.WriteLine("\nAll signatures were successfully created!");
        }
        else
        {
            Console.WriteLine($"Successfully created signatures : {signResult.Succeeded.Count}");
            Helper.WriteError($"Failed signatures : {signResult.Failed.Count}");
        }
        Console.WriteLine("\nList of newly created signatures:");
        int number = 1;
        foreach (BaseSignature temp in signResult.Succeeded)
        {
            Console.WriteLine($"Signature #{number++}: Type: {temp.SignatureType} Id:{temp.SignatureId}");
        }
    }
}

Full List of Issues Covering all Changes in this Release

KeySummaryIssue Type
SIGNATURENET-4259Exported PNG images from the documents have a corrupted formatBug
SIGNATURENET-4222The Page size property of the DocumentInfo is wrong for Spreadsheet filesBug
SIGNATURENET-4006.Net Core : Preview Word Processing document in Jpg format gives unexpected exceptionBug
SIGNATURENET-4150Implement process method metrics to all product methodsFeature
SIGNATURENET-4260Extend trace level logging messages for each particular signature processing for Sign, Update, Delete, Search and Verify methodsEnhancement

Public Developer Guide examples changes

The following topics from Developer Guide were added

Sign document with ordering the signatures

Public API and Backward Incompatible Changes

Public interface IResult was updated with following properties

Property [ProcessingTime] of type long return the execution time of the process in milliseconds. Property [TotalSignatures] of type int return the total processed signatures. Property [SourceDocumentSize] of type long return the input document length in bytes. Property [DestinDocumentSize] of type long return the output document length in bytes.

Public classes SignResult, UpdateResult, DeleteResult were updated with following properties to implement IResult interface

Property [ProcessingTime] of type long return the execution time of the process in milliseconds. Property [TotalSignatures] of type int return the total processed signatures. Property [SourceDocumentSize] of type long return the input document size in bytes. Property [DestinDocumentSize] of type long return the output (signed/modified/saved) document size in bytes.

Public classes VerificationResult and SearchResult were updated to implement IResult interface and support following properties

Property [ProcessingTime] of type long return the execution time of the Sign process in milliseconds. Property [TotalSignatures] of type int return the total processed signatures. Property [SourceDocumentSize] of type long return the input document size in bytes. Property [DestinDocumentSize] of type long for Verify and Search method always returns zero. Property [Succeeded] as List of [BaseSignature] objects keeps the list of processed successfully signatures for Search method. This property does not yet supported for Verify method. Property [Failed] as List of [BaseSignature] objects keeps the list of failed signatures. This property currently does not supported for Verify and Search methods.