Porównanie dokumentów MS Word odbywa się w celu poznania różnicy między dwiema wersjami dokumentu. MS Word posiada wbudowaną opcję porównywania treści dwóch dokumentów. Jednak wraz ze wzrostem liczby dokumentów ręczne porównywanie dokumentów staje się trudne. Aby zautomatyzować ten proces, w tym artykule opisano sposób porównywania dwóch dokumentów MS Word (DOC/DOCX) przy użyciu języka Java.
- Interfejs API porównywania dokumentów MS Word dla języka Java
- Porównaj dokumenty MS Word przy użyciu języka Java
- Ignoruj formatowanie w porównaniu dokumentów MS Word
- Ustaw dokument docelowy dla różnic porównawczych
- Ustaw szczegółowość, aby porównać dokumenty MS Word
Java API do porównywania dokumentów MS Word
Aspose.Words for Java to potężny interfejs API do manipulacji dokumentami, który umożliwia tworzenie, odczytywanie, modyfikowanie i konwertowanie dokumentów MS Word. Ponadto umożliwia porównanie dwóch dokumentów Worda wraz z uwzględnieniem lub pominięciem formatowania treści. Możesz pobrać API lub zainstalować je przy użyciu konfiguracji Mavena.
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-words</artifactId>
<version>20.9</version>
<classifier>jdk17</classifier>
</dependency>
Porównaj dokumenty MS Word przy użyciu języka Java
Poniżej przedstawiono kroki, aby wykonać proste porównanie dokumentów programu Word przy użyciu interfejsu API Aspose.Words for Java.
- Załaduj dokumenty do porównania przy użyciu klasy Document.
- Wywołaj metodę Document.compare(Document, String, Date), aby porównać dokument z przekazanym jako argument.
Poniższy przykładowy kod pokazuje, jak porównać dwa dokumenty MS Word przy użyciu języka Java.
Document docA = new Document(dataDir + "DocumentA.doc");
Document docB = new Document(dataDir + "DocumentB.doc");
docA.compare(docB, "user", new Date()); // docA now contains changes as revisions
Porównanie dokumentów Java Word — Ignoruj formatowanie
Może się zdarzyć, że dokumenty mają różne formatowanie zastosowane do treści. W takich przypadkach wolisz porównywać tylko tekst, ignorując formatowanie, nagłówki/stopki, przypisy, tabele, komentarze itp. Poniżej przedstawiono kroki pozwalające zignorować formatowanie dokumentu podczas porównywania dwóch dokumentów MS Word.
- Załaduj dokumenty do porównania przy użyciu klasy Document.
- Utwórz obiekt klasy CompareOptions.
- Ustaw CompareOptions.setIgnoreFormatting(true).
- Porównaj dokumenty za pomocą metody Document.compare(Document, String, Date, CompareOptions).
Poniższy przykładowy kod pokazuje, jak porównać dokumenty MS Word, ignorując formatowanie zawartości przy użyciu języka Java.
// Pełne przykłady i pliki danych można znaleźć na stronie https://github.com/aspose-words/Aspose.Words-for-Java
String dataDir = Utils.getDataDir(CompareTwoWordDocumentswithCompareOptions.class);
com.aspose.words.Document docA = new com.aspose.words.Document(dataDir + "DocumentA.doc");
com.aspose.words.Document docB = new com.aspose.words.Document(dataDir + "DocumentB.doc");
com.aspose.words.CompareOptions options = new com.aspose.words.CompareOptions();
options.setIgnoreFormatting(true);
options.setIgnoreHeadersAndFooters(true);
options.setIgnoreCaseChanges(true);
options.setIgnoreTables(true);
options.setIgnoreFields(true);
options.setIgnoreComments(true);
options.setIgnoreTextboxes(true);
options.setIgnoreFootnotes(true);
// Dokument DocA zawiera teraz zmiany jako wersje.
docA.compare(docB, "user", new Date(), options);
if (docA.getRevisions().getCount() == 0)
System.out.println("Documents are equal");
else
System.out.println("Documents are not equal");
Ustaw docelowy dokument programu Word dla różnic porównawczych
Aspose.Words for Java umożliwia również określenie źródłowego dokumentu Word podczas porównania. W tym celu można użyć właściwości CompareOptions.setTarget(), która odnosi się do opcji „Pokaż zmiany w” programu MS Word. Poniższy przykład kodu pokazuje, jak określić dokument docelowy w porównaniu.
Document docA = new Document(dataDir + "TestFile.doc");
Document docB = new Document(dataDir + "TestFile - Copy.doc");
CompareOptions options = new CompareOptions();
options.setIgnoreFormatting(true);
// Dotyczy opcji „Pokaż zmiany w” programu Microsoft Word w oknie dialogowym „Porównaj dokumenty”.
options.setTarget(ComparisonTargetType.NEW);
docA.compare(docB, "user", new Date(), options);
Ustaw szczegółowość, aby porównać pliki Word w Javie
Możesz także ustawić stopień szczegółowości zmian podczas porównywania dwóch dokumentów MS Word. Można to zrobić za pomocą właściwości CompareOptions.setGranularity(). Poniżej przedstawiono możliwe opcje szczegółowości.
Poniższy przykładowy kod pokazuje, jak ustawić szczegółowość podczas porównywania dokumentów MS Word przy użyciu języka Java.
DocumentBuilder builderA = new DocumentBuilder(new Document());
DocumentBuilder builderB = new DocumentBuilder(new Document());
builderA.writeln("This is A simple word");
builderB.writeln("This is B simple words");
CompareOptions co = new CompareOptions();
co.setGranularity(Granularity.CHAR_LEVEL);
builderA.getDocument().compare(builderB.getDocument(), "author", new Date(), co);
Wniosek
W tym artykule widziałeś, jak porównać dwa dokumenty MS Word w różnych scenariuszach przy użyciu Javy. Więcej informacji na temat Aspose.Words for Java można znaleźć w dokumentacji.
Wypróbuj za darmo
Aspose oferuje tymczasową licencję, abyś mógł bezpłatnie wypróbować swoje interfejsy API. Możesz dostać swój do oceny Aspose.Words for Java.