---
title: "Сравнение документов в Java"
---

Сравнение документов - это процесс, который идентифицирует изменения между двумя документами и содержит изменения в виде ревизий. Этот процесс сравнивает любые два документа, включая версии одного конкретного документа, после чего изменения между обоими документами будут показаны как ревизии в первом документе.

Метод сравнения достигается путем сравнения слов на уровне символов или на уровне слова. Если слово содержит изменение хотя бы в одном символе, в результате разница будет отображаться как изменение всего слова, а не символа. Этот процесс сравнения является обычной задачей в юридической и финансовой отраслях.

Вместо ручного поиска различий между документами или их версиями, вы можете использовать Aspose.Words для сравнения документов и получения изменений в форматировании, верхнем и нижнем колонтитулах, таблицах и многом другом.

В этой статье объясняется, как сравнивать документы и как задать дополнительные свойства для сравнения.

```

**Попробуйте онлайн**

Вы можете сравнить два документа онлайн, воспользовавшись функцией [Сравнение документов онлайн](https://products.aspose.app/words/comparison) инструмент.

Обратите внимание, что метод сравнения, описанный ниже, используется в этом инструменте для обеспечения получения одинаковых результатов. Таким образом, вы получите одинаковые результаты даже при использовании онлайн-инструмента сравнения или метода сравнения в Aspose.Words.

```

## Ограничения и поддерживаемые форматы файлов {#limitations-and-supported-file-formats}

Сравнение документов - очень сложная функция. Существуют различные комбинации элементов контента, которые необходимо проанализировать, чтобы выявить все различия. Причина этой сложности заключается в том, что алгоритм Aspose.Words стремится получить те же результаты сравнения, что и алгоритм Microsoft Word.

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

```

Обратите внимание, что вы можете сравнить любые два документа в рамках [поддерживаемые форматы файлов](/words/ru/java/supported-document-formats/). В принципе, вы можете сравнивать объекты документа и даже создавать эти объекты с нуля, не имея какого-либо определенного формата.

```

## Сравнение двух документов {#compare-two-documents}

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

Aspose.Words позволяет идентифицировать различия в документах с помощью метода [Compare](https://reference.aspose.com/words/java/com.aspose.words/document/#compare-com.aspose.words.Document-java.lang.String-java.util.Date) - это аналогично функции сравнения документов Microsoft Word. Позволяет проверять документы или их версии на предмет различий и изменений, включая изменения в форматировании, такие как изменение шрифта, изменение интервалов, добавление слов и абзацев.

В результате сравнения документы могут быть определены как равные или неравнозначные. Термин "равные" документы означает, что метод сравнения не позволяет представить изменения в виде ревизий. Это означает, что текст документа и форматирование текста одинаковы. Но между документами могут быть и другие различия. Например, Microsoft Word поддерживает только изменения формата для стилей, и вы не можете представлять вставку/удаление стилей. Таким образом, документы могут иметь разный набор стилей, и метод **Compare** по-прежнему не приводит к внесению изменений.

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

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-programming_documents-document-CompareTwoWordDocuments-wordDocumentsAreEqual.java" >}}

В следующем примере кода показано, как просто применить метод `Compare` к двум документам:

{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-programming_documents-document-CompareTwoWordDocuments-caseWhenDocumentHasRevisions.java" >}}

## Укажите дополнительные параметры сравнения {#specify-advanced-comparing-properties}

Существует множество различных свойств класса [CompareOptions](https://reference.aspose.com/words/java/com.aspose.words/compareoptions/), которые вы можете применить, когда захотите сравнить документы.

Например, Aspose.Words позволяет игнорировать изменения, внесенные во время операции сравнения для определенных типов объектов в исходном документе. Вы можете выбрать подходящее свойство для типа объекта, например [IgnoreHeadersAndFooters](https://reference.aspose.com/words/java/com.aspose.words/compareoptions/#getIgnoreHeadersAndFooters), [IgnoreFormatting](https://reference.aspose.com/words/java/com.aspose.words/compareoptions/#getIgnoreFormatting), [IgnoreComments](https://reference.aspose.com/words/java/com.aspose.words/compareoptions/#getIgnoreComments), и другие, установив для них значение "true".

Кроме того, Aspose.Words предоставляет свойство [Granularity](https://reference.aspose.com/words/java/com.aspose.words/compareoptions/#getGranularity), с помощью которого вы можете указать, следует ли отслеживать изменения по символу или по слову.

Другим распространенным свойством является выбор того, в каком документе показывать изменения для сравнения. Например, в диалоговом окне "Сравнить документы" в Microsoft Word есть опция "Показывать изменения в" - это также влияет на результаты сравнения. Aspose.Words предоставляет свойство [Target](https://reference.aspose.com/words/java/com.aspose.words/compareoptions/#getTarget), которое служит для этой цели.

В следующем примере кода показано, как задать расширенные свойства сравнения:
{{< gist "aspose-words-gists" "827e71ccc0b8516a3cfe247b86ce6d4e" "Examples-src-main-java-com-aspose-words-examples-programming_documents-document-CompareTwoWordDocuments-AdvancedComparingProperties.java" >}}
