Porównywanie dokumentów pod kątem różnic

Wstęp

Czy kiedykolwiek zastanawiałeś się, jak dostrzec każdą pojedynczą różnicę między dwoma dokumentami Worda? Może rewidujesz dokument lub próbujesz znaleźć zmiany wprowadzone przez współpracownika. Ręczne porównania mogą być żmudne i podatne na błędy, ale z Aspose.Words dla Java to pestka! Ta biblioteka umożliwia automatyzację porównywania dokumentów, wyróżnianie rewizji i scalanie zmian bez wysiłku.

Wymagania wstępne

Zanim zaczniesz pisać kod, upewnij się, że masz przygotowane następujące elementy:

  1. Java Development Kit (JDK) zainstalowany w Twoim systemie.
  2. Aspose.Words dla biblioteki Java. Możesz pobierz tutaj .
  3. Środowisko programistyczne, takie jak IntelliJ IDEA lub Eclipse.
  4. Podstawowa znajomość programowania w Javie.
  5. Ważna licencja Aspose. Jeśli jej nie masz, zdobądź tymczasowa licencja tutaj .

Importuj pakiety

Aby użyć Aspose.Words, musisz zaimportować niezbędne klasy. Poniżej przedstawiono wymagane importy:

import com.aspose.words.*;
import java.util.Date;

Upewnij się, że te pakiety zostały prawidłowo dodane do zależności projektu.

W tej sekcji podzielimy ten proces na proste kroki.

Krok 1: Skonfiguruj swoje dokumenty

Na początek potrzebujesz dwóch dokumentów: jednego reprezentującego oryginał i drugiego reprezentującego edytowaną wersję. Oto jak je utworzyć:

Document doc1 = new Document();
DocumentBuilder builder = new DocumentBuilder(doc1);
builder.writeln("This is the original document.");

Document doc2 = new Document();
builder = new DocumentBuilder(doc2);
builder.writeln("This is the edited document.");

Tworzy dwa dokumenty w pamięci z podstawową zawartością. Możesz również załadować istniejące dokumenty Word za pomocąnew Document("path/to/document.docx").

Krok 2: Sprawdź istniejące wersje

Rewizje w dokumentach Worda oznaczają śledzone zmiany. Przed porównaniem upewnij się, że żaden dokument nie zawiera wcześniejszych rewizji:

if (doc1.getRevisions().getCount() == 0 && doc2.getRevisions().getCount() == 0) {
    System.out.println("No revisions found. Proceeding with comparison...");
}

Jeśli istnieją jakieś zmiany, możesz je zaakceptować lub odrzucić przed kontynuowaniem.

Krok 3: Porównaj dokumenty

Użyjcompare metoda znajdowania różnic. Ta metoda porównuje dokument docelowy (doc2) z dokumentem źródłowym (doc1):

doc1.compare(doc2, "AuthorName", new Date());

Tutaj:

  • AuthorName to imię i nazwisko osoby dokonującej zmian.
  • Data jest znacznikiem czasu porównania.

Krok 4: Rewizje procesu

Po porównaniu Aspose.Words wygeneruje wersje w dokumencie źródłowym (doc1). Przeanalizujmy te rewizje:

for (Revision r : doc1.getRevisions()) {
    System.out.println("Revision type: " + r.getRevisionType());
    System.out.println("Node type: " + r.getParentNode().getNodeType());
    System.out.println("Changed text: " + r.getParentNode().getText());
}

Pętla ta dostarcza szczegółowych informacji o każdej rewizji, takich jak rodzaj zmiany i tekst, którego ona dotyczy.

Krok 5: Zaakceptuj wszystkie poprawki

Jeśli chcesz dokument źródłowy (doc1) aby dopasować dokument docelowy (doc2), zaakceptuj wszystkie poprawki:

doc1.getRevisions().acceptAll();

To aktualizujedoc1 aby odzwierciedlić wszystkie zmiany wprowadzone wdoc2.

Krok 6: Zapisz zaktualizowany dokument

Na koniec zapisz zaktualizowany dokument na dysku:

doc1.save("Document.Compare.docx");

Aby potwierdzić zmiany, ponownie załaduj dokument i sprawdź, czy nie ma w nim żadnych innych wersji:

doc1 = new Document("Document.Compare.docx");
if (doc1.getRevisions().getCount() == 0) {
    System.out.println("Documents are now identical.");
}

Krok 7: Sprawdź równość dokumentów

Aby mieć pewność, że dokumenty są identyczne, porównaj ich tekst:

if (doc1.getText().trim().equals(doc2.getText().trim())) {
    System.out.println("Documents are equal.");
}

Jeśli teksty się zgadzają, gratulacje — udało Ci się porównać i zsynchronizować dokumenty!

Wniosek

Porównywanie dokumentów nie jest już uciążliwe dzięki Aspose.Words for Java. Za pomocą zaledwie kilku linijek kodu możesz wskazać różnice, przetworzyć poprawki i zapewnić spójność dokumentów. Niezależnie od tego, czy zarządzasz wspólnym projektem pisarskim, czy audytujesz dokumenty prawne, ta funkcja zmienia zasady gry.

Najczęściej zadawane pytania

Czy mogę porównywać dokumenty zawierające obrazy i tabele?

Tak, Aspose.Words obsługuje porównywanie złożonych dokumentów, w tym dokumentów zawierających obrazy, tabele i formatowanie.

Czy potrzebuję licencji, aby korzystać z tej funkcji?

Tak, licencja jest wymagana do pełnej funkcjonalności. Uzyskaj tymczasowa licencja tutaj .

Co się stanie, jeśli istnieją już wcześniejsze wersje?

Aby uniknąć konfliktów, przed porównaniem dokumentów należy je zaakceptować lub odrzucić.

Czy mogę zaznaczyć zmiany w dokumencie?

Tak, Aspose.Words pozwala dostosować sposób wyświetlania zmian, np. wyróżniać je.

Czy ta funkcja jest dostępna w innych językach programowania?

Tak, Aspose.Words obsługuje wiele języków, w tym .NET i Python.