GroupDocs.Comparison For .NET 3.1.0 Release Notes

Major Features

There are 13 improvements and fixes in this regular monthly release. The most notable are:

  • Introduced support of encrypted files
  • Introduced automatic detection of file types
  • Introduced improved Words comparison performance up to 8 times
  • Introduced improved Words comparison quality for text and tables
  • Introduced improved PDF comparison quality for text, tables and images

Full List of Issues Covering all Changes in this Release

KeySummaryCategory
COMPARISONNET-700Extend PDF Comparison functionality to get changes or confirm that documents are identicalNew Feature
COMPARISONNET-663Add support of password protected files for Words, Cells, Slides and PDFNew Feature
COMPARISONNET-605Add support of File Type Detection from StreamNew Feature
COMPARISONNET-638If content of slide is unique then slide should be marked as Inserted or DeletedImprovement
COMPARISONNET-722Update comparison differs according to performance improvement for Words.Improvement
COMPARISONNET-684Change differ in CommonAligner to improve comparison performanceImprovement
COMPARISONNET-664Implement comparison Words with alignment by identical and formation result-document using target-doc and insertion deleted components from source-docImprovement
COMPARISONNET-588Implement localization for exceptions handlingImprovement
COMPARISONNET-683Modify Comparison Settings in order to support culture informationImprovement
COMPARISONNET-682Add resetting of stream positions in documents constructorsImprovement
COMPARISONNET-681Add checker for result document after merging comparison resultsImprovement
COMPARISONNET-719Comparison Results creating Blank page and Extra Spaces for DOCX/PDFBug
COMPARISONNET-697Client Response - comparing attached documents runs between 8-13 minutes depending on hardware, then ends with 0-byte result.Bug

Public API and Backward Incompatible Changes

Common operations with automatic file format detection

Compare documents from strings

NOTE: Assuming there are files in source.docx, source.xlsx, source.pdf, source.pptx, source.txt are in the same folder as executing assembly.

string sourcePath = @"./data/source.docx";
string targetPath = @"./data/target.docx";

Comparison comparison = new Comparison();
Stream result = comparison.Compare(sourcePath, targetPath);

Compare documents from strings with result path

string sourcePath = @"./data/source.docx";
string targetPath = @"./data/target.docx";

Comparison comparison = new Comparison();
Stream result = comparison.Compare(sourcePath, targetPath, resultPath);

Compare documents from strings with result path and target extension

string sourcePath = @"./data/source.docx";
string targetPath = @"./data/target.docx";

Comparison comparison = new Comparison();
Stream result = comparison.Compare(sourcePath, targetPath, resultPath, FileType.Docx);

Compare documents from strings with result path and settings

string sourcePath = @"./data/source.docx";
string targetPath = @"./data/target.docx";

Comparison comparison = new Comparison();
Stream result = comparison.Compare(sourcePath, targetPath, resultPath, new WordsComparisonSettings());

Compare documents from strings with result path and target extension

string sourcePath = @"./data/source.docx";
string targetPath = @"./data/target.docx";

Comparison comparison = new Comparison();
Stream result = comparison.Compare(sourcePath, targetPath, resultPath, new WordsComparisonSettings(), FileType.Docx);

Compare documents from strings with result path and type

string sourcePath = @"./data/source.docx";
string targetPath = @"./data/target.docx";

Comparison comparison = new Comparison();
Stream result = comparison.Compare(sourcePath, targetPath, resultPath, ComparisonType.Words);

Compare documents from strings with result path type and target extension

string sourcePath = @"./data/source.docx";
string targetPath = @"./data/target.docx";

Comparison comparison = new Comparison();
Stream result = comparison.Compare(sourcePath, targetPath, resultPath, ComparisonType.Words, FileType.Docx);

Compare documents from strings with settings

string sourcePath = @"./data/source.docx";
string targetPath = @"./data/target.docx";

Comparison comparison = new Comparison();
Stream result = comparison.Compare(sourcePath, targetPath, new WordsComparisonSettings());

Compare documents from strings with settings and type

string sourcePath = @"./data/source.docx";
string targetPath = @"./data/target.docx";

Comparison comparison = new Comparison();
Stream result = comparison.Compare(sourcePath, targetPath, ComparisonType.Words, new WordsComparisonSettings());

Compare documents from strings with type

string sourcePath = @"./data/source.docx";
string targetPath = @"./data/target.docx";

Comparison comparison = new Comparison();
Stream result = comparison.Compare(sourcePath, targetPath, ComparisonType.Words);

Compare documents from strings with result path settings and type

string sourcePath = @"./data/source.docx";
string targetPath = @"./data/target.docx";

Comparison comparison = new Comparison();
Stream result = comparison.Compare(sourcePath, targetPath, resultPath, ComparisonType.Words, new WordsComparisonSettings());

Compare documents from strings with result path settings type and target extension

string sourcePath = @"./data/source.docx";
string targetPath = @"./data/target.docx";

Comparison comparison = new Comparison();
Stream result = comparison.Compare(sourcePath, targetPath, resultPath, ComparisonType.Words, new WordsComparisonSettings(), FileType.Docx);

Common operations with encrypted files

Compare encrypted documents from strings

string sourcePath = @"./data/source.docx";
string targetPath = @"./data/target.docx";

string sourcePassword = "pass";
string targetPassword = "pass";

Comparison comparison = new Comparison();
Stream result = comparison.Compare(sourcePath, sourcePassword, targetPath, targetPassword);

Compare encrypted documents from strings with result path

string sourcePath = @"./data/source.docx";
string targetPath = @"./data/target.docx";

string sourcePassword = "pass";
string targetPassword = "pass";

Comparison comparison = new Comparison();
Stream result = comparison.Compare(sourcePath, sourcePassword, targetPath, targetPassword, resultPath);

Compare encrypted documents from strings with result path and target extension

string sourcePath = @"./data/source.docx";
string targetPath = @"./data/target.docx";

string sourcePassword = "pass";
string targetPassword = "pass";

Comparison comparison = new Comparison();
Stream result = comparison.Compare(sourcePath, sourcePassword, targetPath, targetPassword, resultPath, FileType.Docx);

Compare encrypted documents from strings with result path and settings

string sourcePath = @"./data/source.docx";
string targetPath = @"./data/target.docx";

string sourcePassword = "pass";
string targetPassword = "pass";

Comparison comparison = new Comparison();
Stream result = comparison.Compare(sourcePath, sourcePassword, targetPath, targetPassword, resultPath, new WordsComparisonSettings());

Compare encrypted documents from strings with result path settings and target extension

string sourcePath = @"./data/source.docx";
string targetPath = @"./data/target.docx";

string sourcePassword = "pass";
string targetPassword = "pass";

Comparison comparison = new Comparison();
Stream result = comparison.Compare(sourcePath, sourcePassword, targetPath, targetPassword, resultPath, new WordsComparisonSettings(), FileType.Docx);

Compare encrypted documents from strings with result path and type

string sourcePath = @"./data/source.docx";
string targetPath = @"./data/target.docx";

string sourcePassword = "pass";
string targetPassword = "pass";

Comparison comparison = new Comparison();
Stream result = comparison.Compare(sourcePath, sourcePassword, targetPath, targetPassword, resultPath, ComparisonType.Words);

Compare encrypted documents from strings with result path type and target extension

string sourcePath = @"./data/source.docx";
string targetPath = @"./data/target.docx";

string sourcePassword = "pass";
string targetPassword = "pass";

Comparison comparison = new Comparison();
Stream result = comparison.Compare(sourcePath, sourcePassword, targetPath, targetPassword, resultPath, ComparisonType.Words, FileType.Docx);

Compare encrypted documents from strings with settings

string sourcePath = @"./data/source.docx";
string targetPath = @"./data/target.docx";

string sourcePassword = "pass";
string targetPassword = "pass";

Comparison comparison = new Comparison();
Stream result = comparison.Compare(sourcePath, sourcePassword, targetPath, targetPassword, new WordsComparisonSettings());

Compare encrypted documents from strings with settings and type

string sourcePath = @"./data/source.docx";
string targetPath = @"./data/target.docx";

string sourcePassword = "pass";
string targetPassword = "pass";

Comparison comparison = new Comparison();
Stream result = comparison.Compare(sourcePath, sourcePassword, targetPath, targetPassword, ComparisonType.Words, new WordsComparisonSettings());

Compare encrypted documents from strings with type

string sourcePath = @"./data/source.docx";
string targetPath = @"./data/target.docx";

string sourcePassword = "pass";
string targetPassword = "pass";

Comparison comparison = new Comparison();
Stream result = comparison.Compare(sourcePath, sourcePassword, targetPath, targetPassword, ComparisonType.Words);

Compare encrypted documents from strings with result path settings and type

string sourcePath = @"./data/source.docx";
string targetPath = @"./data/target.docx";

string sourcePassword = "pass";
string targetPassword = "pass";

Comparison comparison = new Comparison();
Stream result = comparison.Compare(sourcePath, sourcePassword, targetPath, targetPassword, resultPath, ComparisonType.Words, new WordsComparisonSettings());

Compare encrypted documents from strings with result path settings type and target extension

string sourcePath = @"./data/source.docx";
string targetPath = @"./data/target.docx";

string sourcePassword = "pass";
string targetPassword = "pass";

Comparison comparison = new Comparison();
Stream result = comparison.Compare(sourcePath, sourcePassword, targetPath, targetPassword, resultPath, ComparisonType.Words, new WordsComparisonSettings(), FileType.Docx);