GroupDocs.Signature for .NET 23.10 Release Notes
We are excited to announce the release of GroupDocs.Signature Version 23.10, which brings a host of new features, enhancements, and bug fixes to further improve your product experience. With a focus on enhancing functionality, security, and user experience, this release is a significant milestone in GroupDocs.Signature’s journey.
Full list of changes in this release
Key | Category | Summary |
---|---|---|
SIGNATURENET-4786 | ★ Feature | Implement ability to sign the xlsm with VBA files |
SIGNATURENET-4809 | Enhancement | PDF digital signing with external digital signatures |
SIGNATURENET-4853 | Enhancement | Supporting Swiss QR Code symbology |
SIGNATURENET-4818 | Enhancement | Improve experience with multi pages Webp document |
SIGNATURENET-4784 | Enhancement | Support signing with HIBC LIC primary and secondary data structure |
SIGNATURENET-4680 | 🔧 Fix | Signing pdf with digital signature puts evaluation watermark on output doc |
Major Features
Implement ability to sign the xlsm with VBA files
🌐 In response to your feedback, we’ve implemented the ability to sign xlsm files containing VBA macros. Now, you can seamlessly sign your xlsm documents with VBA files for added security and compliance. New class DigitalVBA has been added to support signing VBA macroses.
using (Signature signature = new Signature(excelFilePath))
{
DigitalSignOptions signOptions = new DigitalSignOptions();
//Add extension for signing VBA project digitally
DigitalVBA digitalVBA = new DigitalVBA(certificatePath, password);
//Set to true only for signing VBA project
digitalVBA.SignOnlyVBAProject = true;
digitalVBA.Comments = "VBA Comment";
signOptions.Extensions.Add(digitalVBA);
// sign document to file
signature.Sign(outputFilePath, signOptions);
}
PDF digital signing with external digital signatures
We understand the importance of digital signatures in PDF documents. In this release, we’ve introduced support for signing PDFs with external digital signatures, making it easier to verify the authenticity and integrity of your PDF files. It supports usb smartcards, tokens without exportable private keys.
Supporting Swiss QR Code symbology
🌐 To meet the specific needs of our Swiss users, we’ve added support for the Swiss QR Code symbology. Now you can generate and process Swiss QR Codes with ease, ensuring compatibility with the latest standards. New class SwissQR has been added, which allows to configure QR properties.
using (Signature signature = new Signature(filePath))
{
var data = new SwissQR()
{
Account = "CH4431999123000889012",
Amount = 1000.25m,
Currency = "CHF",
Reference = "210000000003139471430009017",
Creditor = new SwissAddress
{
Name = "Muster & Söhne",
Street = "Musterstrasse",
HouseNo = "12b",
PostalCode = "8200",
Town = "Zürich",
CountryCode = "CH"
},
Debtor = new SwissAddress
{
Name = "Muster AG",
Street = "Musterstrasse",
HouseNo = "1",
PostalCode = "3030",
Town = "Bern",
CountryCode = "CH"
}
};
// create options
QrCodeSignOptions options = new QrCodeSignOptions
{
EncodeType = QrCodeTypes.QR,
Left = 100,
Top = 100,
Data = data
};
// sign document to file
signature.Sign(outputFilePath, options);
}
//Thenw let's search qr code and get decoded typed data back
using (Signature.Signature signature = new Signature.Signature(outputFilePath))
{
List<QrCodeSignature> signatures = signature.Search<QrCodeSignature>(SignatureType.QrCode);
QrCodeSignature qrCode = signatures.FirstOrDefault();
var swissData = qrCode.GetData<SwissQR>();
}
Improve experience with multi pages Webp document
🌐 Your experience with multi-page WebP documents has been significantly enhanced. From now it’s possible to sign specific pages in the WebP document.
using (var signature = new Signature("multipage.webp"))
{
var options = new QrCodeSignOptions("Patient #363633103. R: No-Issues")
{
// set signature position
Left = 10,
Top = 10,
// set signature rectangle
Width = 200,
Height = 200,
//specify pages numbers which we want to sign
PagesSetup = new PagesSetup()
{
PageNumbers = new List<int> { 1, 3 }
}
};
// sign document to file
SignResult signResult = signature.Sign(outputFilePath, options);
Console.WriteLine($"\nDocument signed with {signResult.Succeeded.Count} signatures");
Console.WriteLine("\nList of newly created signatures:");
foreach (BaseSignature temp in signResult.Succeeded)
{
Console.WriteLine($"{temp.SignatureType} at page #{temp.PageNumber}: Id:{temp.SignatureId}.");
}
}
Support signing with HIBC LIC primary and secondary data structure
🌐 Ability to sign with HIBC LIC barcode Symbology using primary and secondary data separately
using (Signature signature = new Signature(filePath))
{
// Create HIBCLIC Secondary data
var data = new HIBCLICSecondaryAdditionalData()
{
ExpiryDate = DateTime.Today,
ExpiryDateFormat = HIBCLICDateFormat.MMDDYY,
Quantity = 30,
LotNumber = "LOT123",
SerialNumber = "SERIAL123",
DateOfManufacture = DateTime.Today
};
// create options
QrCodeSignOptions options = new QrCodeSignOptions
{
EncodeType = QrCodeTypes.QR,
Left = 100,
Top = 100,
Data = data
};
// sign document to file
signature.Sign(outputFilePath, options);
}
//Thenw let's search qr code and get decoded typed data back
using (Signature.Signature signature = new Signature.Signature(outputFilePath))
{
List<QrCodeSignature> signatures = signature.Search<QrCodeSignature>(SignatureType.QrCode);
QrCodeSignature qrCode = signatures.FirstOrDefault();
var data = qrCode.GetData<HIBCLICSecondaryAdditionalData>();
}
Signing pdf with digital signature puts evaluation watermark on output doc
🌐 We’ve addressed a bug where signing PDF documents with digital signatures would inadvertently result in an evaluation watermark appearing on the output document. This issue has been resolved, ensuring that your signed documents remain professional and watermark-free.