DocumentComparer 1.0.0

dotnet add package DocumentComparer --version 1.0.0                
NuGet\Install-Package DocumentComparer -Version 1.0.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="DocumentComparer" Version="1.0.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add DocumentComparer --version 1.0.0                
#r "nuget: DocumentComparer, 1.0.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install DocumentComparer as a Cake Addin
#addin nuget:?package=DocumentComparer&version=1.0.0

// Install DocumentComparer as a Cake Tool
#tool nuget:?package=DocumentComparer&version=1.0.0                

DocumentComparer

A .NET Library for Comparing Text, DOCX, and PDF Files

NuGet NuGet Downloads

DocumentComparer is a lightweight and flexible .NET library designed to compare text-based files (including .txt, .docx, and .pdf) and return the differences in various formats such as JSON, XML, and HTML (with a GitHub-like diff view).


Features

  • Compare text (.txt), Microsoft Word documents (.docx), and PDF files (.pdf).
  • Get the differences between two documents, including:
    • Additions, deletions, and modifications.
    • Start and end indices of changes.
  • Output formats:
    • JSON: Structured output for easy parsing.
    • XML: Structured and serialized comparison results.
    • HTML: GitHub-style visual representation of changes.
  • Efficient line-by-line comparison with support for character-level differences.

Installation

You can install the DocumentComparer package via NuGet Package Manager Console:

Install-Package DocumentComparer

Or via .NET CLI:

dotnet add package DocumentComparer

Usage

1. Basic Document Comparison

You can compare two files of different formats, such as .txt, .docx, or .pdf, and get the differences in JSON format:

using DocumentComparisonLib;

var comparer = new DocumentComparer();
string result = comparer.CompareDocuments("path/to/file1.txt", "path/to/file2.docx", "json");

Console.WriteLine(result);

2. Output Options

  • JSON Output (default):

    var result = comparer.CompareDocuments("path/to/file1.txt", "path/to/file2.pdf", "json");
    
  • XML Output:

    var result = comparer.CompareDocuments("path/to/file1.txt", "path/to/file2.pdf", "xml");
    
  • HTML Output (GitHub-style diff):

    var result = comparer.CompareDocuments("path/to/file1.txt", "path/to/file2.pdf", "html");
    

4. Supported Formats

  • Text Files (.txt)
  • Word Documents (.docx)
  • PDF Documents (.pdf)

Example Project

Here’s an example of how you can use the library in a .NET console application:

using DocumentComparisonLib;

class Program
{
    static void Main(string[] args)
    {
        var comparer = new DocumentComparer();

        // Comparing two documents with HTML output
        string result = comparer.CompareDocuments("document1.pdf", "document2.docx", "html");
        
        // Save the result to an HTML file
        File.WriteAllText("comparison_result.html", result);

        Console.WriteLine("Comparison completed and saved as comparison_result.html");
    }
}

Contributing

Contributions are welcome! If you'd like to contribute to the project:

  1. Fork the repository.
  2. Create your feature branch (git checkout -b feature/AmazingFeature).
  3. Commit your changes (git commit -m 'Add some AmazingFeature').
  4. Push to the branch (git push origin feature/AmazingFeature).
  5. Open a pull request.

License

This project is licensed under the MIT License. See the LICENSE file for more details.


Contact

If you have any questions or need help, feel free to contact me via GitHub or submit an issue in the repository.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.0 134 10/19/2024