Сравните документы Word и выделите различия с помощью Java

Вы можете легко сравнить два или более документов Word и программно выделить различия. Возможно, вам потребуется сравнить несколько версий одного и того же файла Word или разных файлов, чтобы выявить различия и сходства в вашем приложении Java. В этой статье вы узнаете, как сравнивать два или более документа Word и выделять различия с помощью Java.

В этой статье обсуждаются/рассматриваются следующие темы:

Java API для сравнения документов Word

Я буду использовать GroupDocs.Comparison for Java API для сравнения документов DOCX. Он сравнивает, чтобы обнаружить изменения содержимого для слов, абзацев и символов, предоставляя сравнительный документ, в котором перечислены сводные данные о различиях. Это также позволяет обнаруживать изменения и различия в стиле текста между аналогичными форматами документов. API поддерживает сравнение всех стандартных форматов документов, таких как PDF, HTML, Word, Excel, PowerPoint, сообщения электронной почты Outlook, диаграммы Visio, OpenDocument, AutoCAD и изображения.

Вы можете загрузить JAR API или просто добавить следующую конфигурацию pom.xml в свое Java-приложение на основе Maven, чтобы попробовать приведенные ниже примеры кода.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-comparison</artifactId>
        <version>21.6</version> 
</dependency>

Сравните документы Word с помощью Java

Вы можете сравнить два или более документов Word, выполнив простые шаги, указанные ниже:

  1. Создайте экземпляр класса Comparer.
  2. Укажите путь к исходному файлу DOCX конструктору.
  3. Добавить целевой файл DOCX для сравнения
  4. Вызовите метод Compare() вместе с путем к выходному файлу.

В следующем примере кода показано, как сравнивать документы Word, и выделяются различия с использованием Java.

// инициализировать компаратор
Comparer comparer = new Comparer("C:\\Files\\source.docx");

// добавить целевой файл
comparer.add("C:\\Files\\target.docx");

// сравнить и сохранить результаты сравнения
comparer.compare("C:\\Files\\result.docx");
Исходные и целевые документы Word

Исходные и целевые документы

Сравните два документа Word с помощью Java

Сравните два документа Word с помощью Java

Результирующий документ также включает сводную страницу в конце документа. Он показывает сводку всех изменений.

Класс Comparer — основной класс, управляющий процессом сравнения документов. Метод Compare() этого класса сравнивает исходный и целевой документы. Этот метод сохраняет результаты в путь к файлу, указанный в качестве входного параметра. Метод Add() этого класса добавляет файл в процесс сравнения. Вы можете легко добавить несколько файлов для сравнения, используя метод Add(), как показано ниже:

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

Получить текст изменений с помощью Java

Вы можете получить текст изменений программно, выполнив простые шаги, указанные ниже:

  1. Создайте экземпляр класса Comparer.
  2. Укажите путь к исходному файлу DOCX конструктору.
  3. Добавить целевой файл DOCX для сравнения
  4. Вызовите метод Compare().
  5. Вызовите метод getChanges() и получите подробную информацию об изменениях
  6. Показать изменения

В следующем примере кода показано, как получить текст изменений с помощью Java.

// инициализировать компаратор
Comparer сравниватьr = new Comparer("C:\\Files\\source.docx");

// добавить целевой файл
сравниватьr.add("C:\\Files\\target.docx");

// сравнивать
final Path resultPath = сравниватьr.сравнивать();

// получить изменения
ChangeInfo[] changes = сравниватьr.getChanges();
System.out.println("Count of changes: " + changes.length);

for (ChangeInfo change : changes) {
    System.out.printf("Change Type: %d, Text: %s%n", change.getType(), change.getText());
}
Count of changes: 10
Change Type: 2, Text: 
Change Type: 2, Text:  Company  HYPERLINK "http://www.aspose.com/" Aspose Pty Ltd Division GroupDocs 
Change Type: 2, Text: 
Change Type: 2, Text: Cool 
Change Type: 3, Text: test 
Change Type: 2, Text:  
Change Type: 2, Text: signatures
Change Type: 2, Text: Our 
Change Type: 2, Text: char&#091;
Change Type: 2, Text: 255] 

Вы можете получить список изменений между исходным и целевым файлами, вызвав метод getChanges() класса Comparer. Он возвращает список объектов ChangeInfo. Класс ChangeInfo предоставляет методы для получения подробной информации об изменениях, такие как getText() для получения текста конкретного изменения.

Сравните закладки в документах Word

Вы можете программно сравнить закладки, присутствующие в документах Word, выполнив простые шаги, указанные ниже:

  1. Создайте экземпляр класса Comparer.
  2. Укажите путь к исходному файлу DOCX конструктору.
  3. Добавить целевой файл DOCX для сравнения
  4. Создайте экземпляр CompareOptions.
  5. Установите для параметра CompareBookmarks значение true.
  6. Вызовите метод Compare() вместе с путем к выходному файлу и объектом CompareOptions.

В следующем примере кода показано, как сравнивать закладки в документах Word с помощью Java.

// инициализировать компаратор
Comparer comparer = new Comparer("C:\\Files\\source.docx");

// добавить целевой файл
comparer.add("C:\\Files\\target.docx");

// определить параметры сравнения
CompareOptions compareOptions = new CompareOptions();
compareOptions.setCompareBookmarks(true);

// сравнить и сохранить результаты сравнения
comparer.compare("C:\\Files\\result.docx", compareOptions);
Сравните закладки в документах Word с помощью Java

Сравните закладки в документах Word с помощью Java

Вы можете улучшить процесс сравнения, применяя различные параметры сравнения. Для этой цели класс CompareOptions позволяет вам устанавливать различные параметры сравнения, предоставляя различные методы. Метод setCompareBookmarks() позволяет сравнивать закладки, доступные в исходном и целевом документах.

Получить бесплатную лицензию

Вы можете попробовать API без ограничений на пробную версию, запросив бесплатную временную лицензию.

Вывод

В этой статье вы узнали, как сравнивать два или более документов Word и выделять различия с помощью Java. Вы также узнали, как получить текст выделенных изменений. Более того, вы научились программно сравнивать закладки в документах Word. Вы можете узнать больше о GroupDocs.Comparison for Java API, используя документацию. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.

Смотрите также