GroupDocs.Comparison for .NET là một thư viện C# cho phép bạn so sánh các tài liệu và tìm sự khác biệt. So sánh và hợp nhất Microsoft Word, Excel, PowerPoint, OpenDocument, PDF, Text, HTML và nhiều tài liệu khác, truy xuất danh sách các thay đổi giữa (các) tài liệu nguồn và đích, áp dụng hoặc từ chối các thay đổi và lưu kết quả bằng GroupDocs .API so sánh. Ngoài ra, GroupDocs.Comparison có thể xác định các thay đổi về kiểu dáng và định dạng - như in đậm, in nghiêng, gạch chân, gạch ngang, loại phông chữ, v.v.

Các thuật toán phát hiện thay đổi được sử dụng bởi GroupDocs.Comparison cho phép phát hiện sự khác biệt trong các phần và khối tài liệu khác nhau:

  • Khối văn bản - đoạn văn, từ và ký tự;
  • Những cái bàn;
  • Hình ảnh;
  • Hình dạng vv

Dưới đây là các bước đơn giản để so sánh hai tệp văn bản và chỉ ra sự khác biệt:

  • Khởi tạo đối tượng So sánh với đường dẫn hoặc luồng tài liệu nguồn;
  • Gọi phương thức Add và chỉ định đường dẫn hoặc luồng tài liệu đích;
  • Gọi phương thức So sánh.

Đoạn mã sau minh họa trường hợp so sánh tài liệu đơn giản nhất bằng cách sử dụng một vài dòng mã.

So sánh tài liệu từ tệp cục bộ

using (Comparer comparer = new Comparer(“source.docx”))
{
    comparer.Add(“target.docx”);
    comparer.Compare(“result.docx”);
}

So sánh tài liệu từ luồng

using (Comparer comparer = new Comparer(File.OpenRead(“source.docx”)))
{
    comparer.Add(File.OpenRead(“target.docx”));
    comparer.Compare(File.Create(“result.docx”));
}

Giả sử bạn có hai hợp đồng ở định dạng DOCX được ký kết vào các năm khác nhau. Nếu bạn sử dụng đoạn mã trên để so sánh các hợp đồng này, bạn sẽ nhận được một tệp DOCX trong đó các phần tử đã xóa được đánh dấu bằng màu đỏ, phần được thêm vào có màu xanh lam và phần được sửa đổi có màu xanh lá cây như hình bên dưới:

Chấp nhận hoặc Từ chối sự khác biệt được phát hiện

GroupDocs.Comparison cung cấp khả năng áp dụng hoặc loại bỏ các thay đổi cụ thể giữa tài liệu nguồn và đích và lưu tài liệu kết quả có (hoặc không có) các thay đổi đã chọn.

Sau đây là các bước để áp dụng/từ chối các thay đổi đối với tài liệu kết quả.

  • Khởi tạo đối tượng So sánh với đường dẫn hoặc luồng tài liệu nguồn;
  • Gọi phương thức Add và chỉ định đường dẫn hoặc luồng tài liệu đích;
  • Gọi phương thức So sánh;
  • Gọi phương thức GetChanges và lấy danh sách các thay đổi được phát hiện;
  • Đặt ComparisonAction của đối tượng thay đổi cần thiết thành giá trị ComparisonAction.Accept hoặc ComparisonAction.Reject;
  • Gọi phương thức ApplyChanges và chuyển tập hợp các thay đổi cho nó.

Mẫu mã sau đây cho thấy cách chấp nhận/từ chối sự khác biệt được phát hiện.

using (Comparer comparer = new Comparer(“source.docx”))
{
    comparer.Add(“target.docx”);
    comparer.Compare();
    ChangeInfo[] changes = comparer.GetChanges();
    changes[0].ComparisonAction = ComparisonAction.Reject;
    comparer.ApplyChanges(File.Create(“result.docx”), new SaveOptions(), new ApplyChangeOptions() { Changes = changes });
}

Tạo bản xem trước các trang tài liệu

GroupDocs.Comparison cho phép tạo bản xem trước trang cho (các) tài liệu nguồn, đích và kết quả bằng cách sử dụng phương thức GeneratePreview của lớp Tài liệu.

PreviewOptions được sử dụng để quản lý quá trình tạo bản xem trước - chỉ định số trang mong muốn, định dạng hình ảnh, v.v.

Sau đây là các bước để tạo bản xem trước tài liệu với API GroupDocs.Comparison:

  • Tạo một phiên bản mới của lớp So sánh và chuyển đường dẫn tài liệu nguồn dưới dạng tham số hàm tạo;
  • Thêm (các) tài liệu đích để so sánh bằng phương pháp Add;
  • Nguồn and Targets properties of Comparer object allows to access source and target documents and provides GeneratePreview method;
  • Khởi tạo đối tượng PreviewOptions với:
    • ủy quyền cho mỗi lần tạo luồng trang (xem trình xử lý sự kiện CreatePageStream);
    • định dạng xem trước hình ảnh - PNG/JPG/BMP;
    • số trang để xử lý;
    • kích thước tùy chỉnh của hình ảnh xem trước (nếu cần).
  • Gọi phương thức GeneratePreview của tài liệu SourceTargets và chuyển PreviewOptions cho nó.

Nhận bản xem trước trang cho tài liệu kết quả

using (Comparer comparer = new Comparer(“source.docx”))
{
    comparer.Add(“target.docx”);
    comparer.Compare(“result.docx”);
    Document document = new Document(File.OpenRead(“result.docx”));
    PreviewOptions previewOptions = new PreviewOptions(pageNumber =>
    {
        var pagePath = Path.Combine(“C:\\”, $"result\_{pageNumber}.png");
        return File.Create(pagePath);
    });
    previewOptions.PreviewFormat = PreviewFormats.PNG;
    previewOptions.PageNumbers = new int[] { 1, 2 };
    document.GeneratePreview(previewOptions);
}

So sánh nhiều tài liệu

GroupDocs.Comparison cho phép so sánh nhiều hơn hai tài liệu. Mẫu mã sau đây cho biết cách so sánh nhiều tài liệu theo chương trình.

using (Comparer comparer = new Comparer(“source.docx”)
{
    comparer.Add(“target1.docx”);
    comparer.Add(“target2.docx”);
    comparer.Add(“target3.docx”);
    comparer.Compare(“result.docx”);
}

Cài đặt

NuGet là cách dễ nhất để tải xuống và cài đặt GroupDocs.Comparison for .NET. Vui lòng lấy giấy phép tạm thời để kiểm tra thư viện mà không có bất kỳ giới hạn chức năng nào.

Vui lòng xem tài liệu để tìm hiểu thêm về thư viện. Chúng tôi cũng cung cấp hỗ trợ kỹ thuật miễn phí, vì vậy vui lòng liên hệ với chúng tôi - chúng tôi sẽ sẵn lòng trợ giúp.