Porównaj dwa lub więcej dokumentów programu Word przy użyciu języka C#

Porównaj dwa lub więcej dokumentów programu Word przy użyciu języka C#

Możesz łatwo porównać dwa lub więcej dokumentów programu Word lub porównać wiele wersji tego samego pliku programu Word pod kątem różnic i podobieństw programowo w aplikacjach .NET. W tym artykule dowiesz się, jak porównać dwa lub więcej dokumentów programu Word i podkreślić różnice za pomocą języka C#.

W tym artykule omówiono/omówiono następujące tematy:

API C# do porównywania plików DOCX

Do porównania dwóch lub więcej plików DOCX użyję GroupDocs.Comparison for .NET API. Porównuje dwa lub więcej dokumentów i wykrywa zmiany w treści dokumentów pod względem słów, akapitów i znaków. W rezultacie powstaje dokument porównawczy, który podkreśla różnice i zawiera podsumowanie różnic. Umożliwia także wykrywanie zmian i różnic w stylu tekstu pomiędzy podobnymi formatami dokumentów. Interfejs API obsługuje porównywanie wszystkich standardowych formatów dokumentów, takich jak PDF, HTML, Word, Excel, PowerPoint, wiadomości e-mail programu Outlook, diagramy Visio, OpenDocument, AutoCAD i obrazy.

Możesz pobrać bibliotekę DLL interfejsu API lub zainstalować ją za pomocą NuGet.

Install-Package GroupDocs.Comparison

Porównaj dwa lub więcej dokumentów programu Word przy użyciu języka C#

Możesz programowo porównać dwa lub więcej dokumentów programu Word, wykonując proste kroki podane poniżej:

  1. Utwórz instancję klasy Comparer ze ścieżką źródłowego pliku DOCX
  2. Wywołaj metodę Add() z docelowym plikiem DOCX, który chcesz dodać do porównania
  3. Powtórz powyższy krok, aby dodać więcej plików do porównania
  4. Wywołaj metodę Compare() ze ścieżką do pliku wyjściowego

Poniższy przykładowy kod pokazuje, jak porównać dwa lub więcej dokumentów programu Word i wyróżnia różnice przy użyciu języka C#.

// zainicjuj funkcję porównującą
Comparer comparer = new Comparer("C:\\Files\\source.docx");

// dodaj plik docelowy do porównania
comparer.Add("C:\\Files\\target.docx");

// porównaj i zapisz różnice
comparer.Compare("C:\\Files\\result.docx");
Źródłowe i docelowe pliki DOCX

Źródłowe i docelowe pliki DOCX

Porównaj dwa lub więcej dokumentów programu Word przy użyciu języka C#

Porównaj dwa lub więcej dokumentów programu Word przy użyciu języka C#

Dokument wynikowy zawiera również stronę podsumowującą na końcu dokumentu, która pokazuje podsumowanie wszystkich zmian znalezionych w porównaniu.

Klasa Comparer jest klasą główną, która umożliwia kontrolowanie i realizację procesu porównywania. Zapewnia kilka metod porównywania dwóch lub więcej dokumentów. Metoda Add() tej klasy dodaje plik do procesu porównania. Możesz łatwo dodać wiele plików do porównania, korzystając z metody Add(), jak pokazano poniżej:

comparer.Add("target1.docx");
comparer.Add("target2.docx");
comparer.Add("target3.docx");

Metoda Compare() klasy Comparer porównuje dokumenty źródłowe i docelowe. Ta metoda podkreśla różnice i zapisuje wyniki w ścieżce pliku podanej jako parametr wejściowy.

Porównaj dokumenty programu Word za pomocą strumienia w języku C#

Możesz porównać dwa lub więcej dokumentów programu Word za pomocą FileStream, wykonując czynności podane poniżej:

  1. Przeczytaj plik źródłowy w obiekcie Stream
  2. Przeczytaj plik docelowy w innym obiekcie Stream
  3. Utwórz instancję klasy Comparer ze źródłowym obiektem Stream
  4. Wywołaj metodę Add() z docelowym obiektem Stream, który chcesz dodać do porównania
  5. Wywołaj metodę Compare() ze ścieżką do pliku wyjściowego

Poniższy przykładowy kod pokazuje, jak porównywać dokumenty programu Word przy użyciu FileStream w języku C#.

// czytaj pliki źródłowe i docelowe
using (Stream sourceStream = File.OpenRead("C:\\Files\\source.docx"))
using (Stream targetStream = File.OpenRead("C:\\Files\\target.docx"))
{
    // zainicjuj funkcję porównującą
    using (Comparer comparer = new Comparer(sourceStream))
    {
        // dodaj docelowy strumień plików do porównania
        comparer.Add(targetStream);

        // porównaj i zapisz różnice
        comparer.Compare(File.Create("C:\\Files\\result.docx"));
    }
}

Uzyskaj tekst zmian za pomocą języka C#

Możesz programowo uzyskać tekst zmian znalezionych w porównaniu dokumentów Word, wykonując proste kroki podane poniżej:

  1. Utwórz instancję klasy Comparer ze ścieżką źródłowego pliku DOCX
  2. Wywołaj metodę Add() z docelowym plikiem DOCX, który chcesz dodać do porównania
  3. Powtórz powyższy krok, aby dodać więcej plików do porównania
  4. Wywołaj metodę Compare().
  5. Wywołaj metodę GetChanges(), aby uzyskać szczegółowe informacje o zmianach
  6. Pokaż zmiany

Poniższy przykładowy kod pokazuje, jak uzyskać tekst zmian przy użyciu języka C#.

// zainicjuj funkcję porównującą
Comparer porównywaćr = new Comparer("C:\\Files\\source.docx");

// dodaj plik docelowy do porównania
porównywaćr.Add("C:\\Files\\target.docx");

// porównywać
porównywaćr.Compare();

// uzyskać zmiany
ChangeInfo[] changes = porównywaćr.GetChanges();

Console.WriteLine("Count of changes: " + changes.Length);

// pokaż zmiany
foreach (ChangeInfo change in changes)
{
    Console.WriteLine("Change Type: " + change.Type + ", Text: " + change.Text);
}
Count of changes: 10
Change Type: Inserted, Text:
Change Type: Inserted, Text:  Company ‼ HYPERLINK "http://www.aspose.com/" ¶Aspose Pty Ltd§ Division GroupDocs
Change Type: Inserted, Text:
Change Type: Inserted, Text: Cool
Change Type: Deleted, Text: test
Change Type: Inserted, Text:
Change Type: Inserted, Text: signatures
Change Type: Inserted, Text:
Change Type: Deleted, Text: Customers
Change Type: Deleted, Text: GroupDocs is used by companies of all sizes across the globe, from large multinational firms to small freelance businesses. They come to us because they have a need for a simple, one-stop-shop, document management solution.

Listę zmian pomiędzy plikami źródłowymi i docelowymi można uzyskać wywołując metodę GetChanges() klasy Comparer. Zwraca listę obiektów ChangeInfo. Klasa ChangeInfo reprezentuje informacje o zmianach i udostępnia różne właściwości umożliwiające uzyskanie szczegółów zmian, takie jak Text, Type itp.

Porównanie właściwości dokumentów przy użyciu języka C#

Możesz programowo porównywać wbudowane, niestandardowe i zmienne właściwości dokumentów programu Word, wykonując czynności podane poniżej:

  1. Utwórz instancję klasy Comparer ze ścieżką źródłowego pliku DOCX
  2. Wywołaj metodę Add() z docelowym plikiem DOCX, który chcesz dodać do porównania
  3. Powtórz powyższy krok, aby dodać więcej plików do porównania
  4. Utwórz instancję CompareOptions
  5. Ustaw CompareVariableProperty na true
  6. Ustaw CompareDocumentProperty na true
  7. Wywołaj metodę Compare() ze ścieżką do pliku wyjściowego i opcjami porównania

Poniższy przykładowy kod pokazuje, jak porównać właściwości dokumentów przy użyciu języka C#.

// zainicjuj funkcję porównującą
Comparer porównywaćr = new Comparer("C:\\Files\\source.docx");

// dodaj plik docelowy do porównania
porównywaćr.Add("C:\\Files\\target.docx");

// zdefiniuj opcje porównania
CompareOptions options = new CompareOptions();
options.CompareVariableProperty = true; // activate the comparison of variable properties
options.CompareDocumentProperty = true; // activate the comparison of built and custom properties

// porównywać
porównywaćr.Compare("C:\\Files\\result.docx", options);
Porównanie właściwości dokumentów przy użyciu języka C#

Porównanie właściwości dokumentów przy użyciu języka C#

Możesz usprawnić proces porównywania, stosując różne opcje porównywania. W tym celu klasa CompareOptions umożliwia ustawienie różnych opcji porównywania w celu uzyskania określonych wyników. Element CompareDocumentProperty tej klasy umożliwia włączenie porównywania właściwości wbudowanych i niestandardowych w formacie programu Word. Opcja CompareVariableProperty umożliwia włączenie porównywania właściwości zmiennych w formacie Word.

Porównaj dokumenty Word chronione hasłem przy użyciu języka C#

Możesz programowo porównać dwa lub więcej dokumentów programu Word chronionych hasłem, wykonując poniższe czynności:

  1. Utwórz instancję klasy LoadOptions.
  2. Podaj hasło do pliku źródłowego
  3. Utwórz instancję klasy Comparer ze ścieżką źródłowego pliku DOCX i opcjami LoadOptions
  4. Wywołaj metodę Add() podając ścieżkę docelowego pliku DOCX i instancję LoadOptions z hasłem
  5. Powtórz powyższy krok, aby dodać więcej plików do porównania
  6. Wywołaj metodę Compare() ze ścieżką do pliku wyjściowego

Poniższy przykładowy kod pokazuje, jak porównać dokumenty programu Word chronione hasłem przy użyciu języka C#.

// zdefiniuj opcje ładowania pliku źródłowego
LoadOptions sourceLoadOptions = new LoadOptions() { Password = "1234" };

// zainicjuj funkcję porównującą
Comparer porównywaćr = new Comparer("C:\\Files\\source.docx", sourceLoadOptions);

// dodaj plik docelowy do porównania
porównywaćr.Add("C:\\Files\\target.docx", new LoadOptions() { Password = "5678" });

// porównywać
porównywaćr.Compare("C:\\Files\\result.docx");

Klasa LoadOptions umożliwia określenie dodatkowych opcji podczas ładowania dokumentu. Zapewnia następujące właściwości do określenia:

  • FontDirectories — Lista katalogów czcionek do załadowania.
  • LoadText — Wskazuje, że przekazane ciągi znaków są tekstem porównawczym, a nie ścieżkami plików (tylko w przypadku porównania tekstu).
  • Hasło — hasło dokumentu.

Porównaj zakładki w dokumentach programu Word przy użyciu języka C#

Możesz programowo porównać zakładki dostępne w dokumentach Word, wykonując poniższe czynności:

  1. Utwórz instancję klasy Comparer ze ścieżką źródłowego pliku DOCX
  2. Wywołaj metodę Add() z docelowym plikiem DOCX, który chcesz dodać do porównania
  3. Powtórz powyższy krok, aby dodać więcej plików do porównania
  4. Utwórz instancję CompareOptions
  5. Ustaw CompareBookmarks na true
  6. Wywołaj metodę Compare() ze ścieżką do pliku wyjściowego i opcjami porównania

Poniższy przykładowy kod pokazuje, jak porównać zakładki w dokumentach programu Word przy użyciu języka C#.

// zainicjuj funkcję porównującą
Comparer porównywaćr = new Comparer("C:\\Files\\source.docx");

// dodaj plik docelowy do porównania
porównywaćr.Add("C:\\Files\\target.docx");

// zdefiniuj opcje porównania
CompareOptions porównywaćOptions = new CompareOptions();
porównywaćOptions.CompareBookmarks = true; // porównywać bookmarks

// porównywać
porównywaćr.Compare("C:\\Files\\result.docx", porównywaćOptions);
Porównaj zakładki w dokumentach programu Word przy użyciu języka C#

Porównaj zakładki w dokumentach programu Word przy użyciu języka C#

Właściwość CompareBookmarks umożliwia porównanie zakładek dostępnych w dokumencie źródłowym i docelowym.

Zdobądź bezpłatną licencję

Możesz wypróbować interfejs API bez ograniczeń ewaluacyjnych, prosząc o bezpłatną licencję tymczasową.

Wniosek

W tym artykule nauczyłeś się, jak porównywać dwa lub więcej dokumentów programu Word i podkreślać różnice przy użyciu języka C#. Nauczyłeś się także, jak uzyskać listę wyróżnionych zmian. Co więcej, nauczyłeś się programowo porównywać zakładki w dokumentach Word. Ponadto nauczyłeś się porównywać dokumenty Word chronione hasłem przy użyciu języka C#. Więcej informacji na temat GroupDocs.Comparison for .NET API można znaleźć w dokumentacji. W przypadku jakichkolwiek niejasności prosimy o kontakt na forum.

Zobacz też