Ви можете порівняти документи MS Word, щоб дізнатися про різницю між двома версіями документа. MS Word надає вбудовану опцію для порівняння вмісту двох документів і виділення відмінностей. Під час роботи з автоматизацією MS Word у Java вам може знадобитися програмно порівняти два або більше документів Word. Тому в цій статті описано, як порівняти два документи Word у Java. Ми також продемонструємо, як ігнорувати форматування документів і отримати порівняльні відмінності в конкретному документі Word.
- Бібліотека Java для порівняння документів Word
- Порівняйте документи MS Word за допомогою Java
- Ігнорувати форматування в порівнянні документів MS Word
- Встановити цільовий документ для відмінностей порівняння
- Встановіть деталізацію для порівняння документів MS Word
Бібліотека Java для порівняння двох документів Word
Aspose.Words for Java — це потужна бібліотека для обробки документів, яка дозволяє створювати, читати, змінювати та конвертувати документи MS Word. Крім того, це дозволяє порівнювати два документи Word, враховуючи або ігноруючи форматування вмісту. Ви можете завантажити бібліотеку або встановити її за допомогою конфігурацій Maven.
<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>22.9</version>
<classifier>jdk17</classifier>
</dependency>
Як порівняти два документи Word у Java
Нижче наведено кроки для виконання простого порівняння документів Word за допомогою API Aspose.Words for Java.
- Завантажте документи для порівняння за допомогою класу Document.
- Викличте метод Document.compare(Document, String, Date), щоб порівняти документ із документом, переданим як аргумент.
Код Java для порівняння документів Word
У наведеному нижче прикладі коду показано, як порівняти два документи MS Word за допомогою 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
Java Порівняйте Word DOCX, ігноруючи форматування
Може бути випадок, коли документи мають різне форматування, застосоване до вмісту. У таких випадках ви віддасте перевагу порівнювати лише текст, ігноруючи форматування, верхні та нижні колонтитули, виноски, таблиці, коментарі тощо. Нижче наведено кроки, щоб ігнорувати форматування документа під час порівняння двох файлів MS Word DOC у Java.
- Завантажте документи для порівняння за допомогою класу Document.
- Створіть об’єкт класу CompareOptions.
- Установіть CompareOptions.setIgnoreFormatting(true).
- Порівняйте документи за допомогою методу Document.compare(Document, String, Date, CompareOptions).
У наступному прикладі коду показано, як порівняти документи MS Word, ігноруючи форматування вмісту за допомогою Java.
// Щоб отримати повні приклади та файли даних, перейдіть на сторінку 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);
// DocA тепер містить зміни як версії.
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");
Встановити цільовий документ у MS Word Comparison
Aspose.Words for Java також дозволяє вказати вихідний документ Word під час порівняння. Для цього ви можете використовувати властивість CompareOptions.setTarget(), яка стосується опції MS Word «Показати зміни в». У наведеному нижче прикладі коду показано, як указати цільовий документ у порівнянні.
Document docA = new Document(dataDir + "TestFile.doc");
Document docB = new Document(dataDir + "TestFile - Copy.doc");
CompareOptions options = new CompareOptions();
options.setIgnoreFormatting(true);
// Пов’язано з параметром Microsoft Word «Показати зміни в» у діалоговому вікні «Порівняти документи».
options.setTarget(ComparisonTargetType.NEW);
docA.compare(docB, "user", new Date(), options);
Порівняйте файли Word із налаштованою деталізацією
Ви також можете встановити ступінь деталізації змін під час порівняння двох документів MS Word. Це можна зробити за допомогою властивості CompareOptions.setGranularity(). Нижче наведено можливі варіанти деталізації.
У наведеному нижче прикладі коду показано, як налаштувати деталізацію під час порівняння документів MS Word за допомогою 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);
Бібліотека Java Difference Checker — безкоштовна ліцензія
Aspose пропонує безкоштовну тимчасову ліцензію для порівняння документів Word без будь-яких обмежень оцінки.
Докладніше про бібліотеку Java Word
Ви можете дізнатися більше про Aspose.Words for Java, використовуючи документацію.
Висновок
У цій статті ви побачили, як порівняти два документи Word у Java. Ми розглянули різні варіанти програмного налаштування порівняння документів Word у Java.