GroupDocs.Comparsion for .NET 17.3.0 Release Notes

Major Features

There are 3 new features and 4 improvements and 1 fix in this regular monthly release. The most notable are:

  • Add ability of comparing DICOM documents by Comparison.Imaging
  • Simplified and improved public API across all supported formats
  • Introduced the process absorbing of tables with merged cells for GroupDocs.Comparison.PDF
  • Fixed comparing filled tables for GroupDocs.Comparison.PDF

Full List of Issues Covering all Changes in this Release

KeySummaryCategory
COMPARISONNET-1156Add ability of comparing DICOM documents by Comparison.ImagingNew Feature
COMPARISONNET-1163Apply/Discard changes for DICOM formatNew Feature
OMPARISONNET-1165Add summary page to images streamsNew Feature
COMPARISONNET-778Implement the process absorbing of tables with merged cellsImprovement
COMPARISONNET-1148Improved public APIImprovement
COMPARISONNET-1161Add ability for comparison of result and original files in Imaging.TestsImprovement
COMPARISONNET-1157Add localize exceptions for wrong passwords while opening documents in Cells, Words, Slides and PDFImprovement
COMPARISONNET-1160PDF Comparison - PDF files with tables and footer lines generating unexpected outputBug

Public API and Backward Incompatible Changes

Default licensing

1. Create license object and use method SetLicense() that takes path to license or license stream as argument

License license = new License();
license.SetLicense("path to license");

//or
License license = new License();
license.SetLicense("license stream");

Metered licensing

2. Create metered object and use method SetMeteredKey()

// Set metered key
Metered metered = new Metered();
metered.SetMeteredKey("****", "****");

To check current consumption quantity use GetConsumptionQuantity() method

// Get consumption quantity from metered
decimal amountBefor = Metered.GetConsumptionQuantity();
// Call comparison
string sourcePath = @"./data/source.docx";
string targetPath = @"./data/target.docx";
Comparer comparer = new Comparer();
comparer.Compare(sourcePath, targetPath, new ComparisonSettings());
comparer.Compare(sourcePath, targetPath, new ComparisonSettings());
// Get consumption quantity from metered after several calls of comparison
decimal amountAfter = Metered.GetConsumptionQuantity();

Compare two documents from files:

string source = "source.docx";
string target = "target.docx";
Comparer comparer = new Comparer();
ICompareResult result = comparer.Compare(source, target, new ComparisonSettings());

Compare two documents from streams:

Stream source = Assembly.GetExecutingAssembly().GetManifestResourceStream("source.docx");
Stream target = Assembly.GetExecutingAssembly().GetManifestResourceStream("target.docx");

Comparer comparer = new Comparer();
ICompareResult result = comparer.Compare(source, target, new ComparisonSettings());
Compare two documents with passwords from files:
string source = "source.docx";
string target = "target.docx";
string sourcePassword = "password";
string targetPassword = "password";
Comparer comparer = new Comparer();
ICompareResult result = comparer.Compare(source, sourcePassword, target, targetPassword, new ComparisonSettings());
Compare two documents with passwords from streams:
Stream source = Assembly.GetExecutingAssembly().GetManifestResourceStream("source.docx");
Stream target = Assembly.GetExecutingAssembly().GetManifestResourceStream("target.docx");

string sourcePassword = "password";
string targetPassword = "password";

Comparer comparer = new Comparer();
ICompareResult result = comparer.Compare(source, sourcePassword, target, targetPassword, new ComparisonSettings());