Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Сравнение документов - это процесс, который идентифицирует изменения между двумя документами и содержит изменения в виде ревизий. Этот процесс сравнивает любые два документа, включая версии одного конкретного документа, после чего изменения между обоими документами будут показаны как ревизии в первом документе.
Метод сравнения достигается путем сравнения слов на уровне символов или на уровне словосложения. Если в слове изменен хотя бы один символ, в результате разница будет отображаться как изменение всего слова, а не символа. Этот процесс сравнения является обычной задачей в юридической и финансовой отраслях.
Вместо ручного поиска различий между документами или их различными версиями вы можете использовать Aspose.Words для сравнения документов и получения изменений в форматировании, верхнем и нижнем колонтитулах, таблицах и многом другом.
В этой статье объясняется, как сравнивать документы и как задать расширенные свойства для сравнения.
Попробуйте онлайн
Вы можете сравнить два документа онлайн, воспользовавшись функцией Сравнение документов онлайн инструмент.
Обратите внимание, что метод сравнения, описанный ниже, используется в этом инструменте для обеспечения получения одинаковых результатов. Таким образом, вы получите одинаковые результаты даже при использовании онлайн-инструмента сравнения или метода сравнения в Aspose.Words.
Сравнение документов - очень сложная функция. Существуют различные комбинации элементов контента, которые необходимо проанализировать, чтобы выявить все различия. Причина этой сложности заключается в том, что алгоритм Aspose.Words стремится получить те же результаты сравнения, что и алгоритм Microsoft Word.
Общее ограничение для двух сравниваемых документов заключается в том, что они не должны иметь изменений перед вызовом метода compare, поскольку это ограничение существует в Microsoft Word.
Когда вы сравниваете документы, отличия последнего документа от первого отображаются в виде изменений по сравнению с первым. Когда вы изменяете документ, после выполнения метода сравнения каждая правка будет иметь свою собственную редакцию.
Aspose.Words позволяет идентифицировать различия в документах с помощью метода compare – это аналогично функции сравнения документов Microsoft Word. Позволяет проверять документы или их версии на предмет различий и изменений, включая изменения в форматировании, такие как изменение шрифта, изменение интервалов, добавление слов и абзацев.
В результате сравнения документы могут быть определены как равные или неравнозначные. Термин “равные” документы означает, что метод сравнения не позволяет представить изменения в виде ревизий. Это означает, что текст документа и его форматирование одинаковы. Но между документами могут быть и другие различия. Например, Microsoft Word поддерживает только изменения формата для стилей, и вы не можете отображать вставку/удаление стилей. Таким образом, в документах может быть другой набор стилей, а метод compare по-прежнему не производит изменений.
В следующем примере кода показано, как проверить, равны ли два документа или нет:
В следующем примере кода показано, как просто применить метод Compare к двум документам:
# The source document doc1.
doc1 = aw.Document()
builder = aw.DocumentBuilder(doc1)
builder.writeln("This is the original document.")
# The target document doc2.
doc2 = aw.Document()
builder = aw.DocumentBuilder(doc2)
builder.writeln("This is the edited document.")
# If either document has a revision, an exception will be thrown.
if (doc1.revisions.count == 0 and doc2.revisions.count == 0) :
doc1.compare(doc2, "authorName", datetime.today())
# If doc1 and doc2 are different, doc1 now has some revisions after the comparison, which can now be viewed and processed.
self.assertEqual(2, doc1.revisions.count)
for r in doc1.revisions :
print(f"Revision type: {r.revision_type}, on a node of type \"{r.parent_node.node_type}\"")
print(f"\tChanged text: \"{r.parent_node.get_text()}\"")
# All the revisions in doc1 are differences between doc1 and doc2, so accepting them on doc1 transforms doc1 into doc2.
doc1.revisions.accept_all()
# doc1, when saved, now resembles doc2.
doc1.save(docs_base.artifacts_dir + "Document.Compare.docx")
doc1 = aw.Document(docs_base.artifacts_dir + "Document.Compare.docx")
self.assertEqual(0, doc1.revisions.count)
self.assertEqual(doc2.get_text().strip(), doc1.get_text().strip())Существует множество различных свойств класса CompareOptions, которые вы можете применить, когда захотите сравнить документы.
Например, Aspose.Words позволяет игнорировать изменения, внесенные во время операции сравнения для определенных типов объектов в исходном документе. Вы можете выбрать подходящее свойство для типа объекта, например ignore_headers_and_footers, ignore_formatting, ignore_comments, и другие, установив для них значение True.
Кроме того, Aspose.Words предоставляет свойство granularity, с помощью которого вы можете указать, следует ли отслеживать изменения по символу или по слову.
Другим распространенным свойством является выбор того, в каком документе показывать изменения для сравнения. Например, в диалоговом окне “Сравнить документы” в Microsoft Word есть опция “Показывать изменения в” – это также влияет на результаты сравнения. Aspose.Words предоставляет свойство target, которое служит для этой цели.
В следующем примере кода показано, как задать расширенные свойства сравнения:
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.