GroupDocs.Comparison for .NET to biblioteka C#, która umożliwia porównywanie dokumentów i znajdowanie różnic. Porównuj i łącz Microsoft Word, Excel, PowerPoint, OpenDocument, PDF, Text, HTML i wiele innych dokumentów, pobierz listę zmian między dokumentami źródłowymi i docelowymi, zastosuj lub odrzuć zmiany i zapisz wyniki za pomocą GroupDocs Interfejs API porównania. Oprócz tego GroupDocs.Comparison może identyfikować zmiany stylu i formatowania – takie jak pogrubienie, kursywa, podkreślenia, przekreślenia, rodzaje czcionek itp.

Algorytmy wykrywania zmian używane przez GroupDocs.Comparison pozwalają wykryć różnice w różnych częściach i blokach dokumentu:

  • Bloki tekstowe - akapity, słowa i znaki;
  • stoły;
  • Zdjęcia;
  • Kształty itp.

Oto proste kroki, aby porównać dwa pliki tekstowe i pokazać różnice:

  • Utwórz instancję obiektu Comparer ze ścieżką lub strumieniem dokumentu źródłowego;
  • Wywołaj metodę Add i określ docelową ścieżkę lub strumień dokumentu;
  • Wywołaj metodę Porównaj.

Poniższy fragment kodu demonstruje najprostszy przypadek porównania dokumentów przy użyciu kilku wierszy kodu.

Porównaj dokumenty z pliku lokalnego

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

Porównaj dokumenty ze strumienia

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

Załóżmy, że masz dwie umowy w formacie DOCX, które zostały zawarte w różnych latach. Jeśli użyjesz powyższego kodu do porównania tych umów, otrzymasz plik DOCX, w którym usunięte elementy są zaznaczone na czerwono, dodane na niebiesko, a zmodyfikowane na zielono, jak pokazano poniżej:

Zaakceptuj lub Odrzuć wykryte różnice

GroupDocs.Comparison umożliwia zastosowanie lub odrzucenie określonych zmian między dokumentami źródłowymi i docelowymi oraz zapisanie wynikowego dokumentu z wybranymi zmianami (lub bez).

Poniżej przedstawiono kroki, aby zastosować/odrzucić zmiany w wynikowym dokumencie.

Poniższy przykładowy kod pokazuje, jak zaakceptować/odrzucić wykryte różnice.

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 });
}

Wygeneruj podgląd stron dokumentu

GroupDocs.Comparison umożliwia generowanie podglądów stron dla dokumentów źródłowych, docelowych i wynikowych za pomocą metody GeneratePreview klasy Document.

Klasa PreviewOptions służy do zarządzania procesem generowania podglądu - określa żądane numery stron, format obrazu itp.

Poniżej przedstawiono kroki, aby wygenerować podgląd dokumentu za pomocą GroupDocs.Comparison API:

  • Utwórz nową instancję klasy Comparer i przekaż ścieżkę dokumentu źródłowego jako parametr konstruktora;
  • Dodaj dokument(y) docelowy(e) do porównania metodą Dodaj;
  • Źródło and Targets properties of Comparer object allows to access source and target documents and provides GeneratePreview method;
  • Utwórz instancję obiektu PreviewOptions za pomocą:
    • delegat dla każdego tworzenia strumienia stron (zobacz program obsługi zdarzeń CreatePageStream);
    • format podglądu obrazu - PNG/JPG/BMP;
    • numery stron do przetworzenia;
    • niestandardowy rozmiar obrazów podglądu (w razie potrzeby).
  • Wywołaj metodę GeneratePreview dokumentu Source i Targets i przekaż do niej PreviewOptions.

Uzyskaj podglądy stron dla wynikowego dokumentu

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);
}

Porównaj wiele dokumentów

GroupDocs.Comparison umożliwia porównanie więcej niż dwóch dokumentów. Poniższy przykład kodu pokazuje, jak programowo porównać wiele dokumentów.

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

Instalacja

NuGet to najprostszy sposób na pobranie i zainstalowanie GroupDocs.Comparison dla platformy .NET. Proszę uzyskaj tymczasową licencję, aby przetestować bibliotekę bez żadnych ograniczeń funkcjonalnych.

Sprawdź dokumentację, aby dowiedzieć się więcej o bibliotece. Oferujemy również bezpłatną pomoc techniczną, dlatego zachęcamy do skontaktuj się z nami – chętnie pomożemy.