Получить разницу двух файлов документов MSWord и вывести в html

Возможный дубликат:
Как сравнить два текстовых документа?

Как вы можете программно получить разницу между двумя документами Word .doc? Где вы можете затем взять полученный результат и создать html-файл результата. (Как вы ожидаете увидеть в обычном инструменте сравнения графического интерфейса)

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

Есть ли способ сделать это без окон и COM?

(желательно на питоне, но я открыт для других решений)

ОБНОВЛЕНИЕ

Первоначальный вопрос об инструментах сравнения msword был дубликатом: (Спасибо, Натан)

Как сравнить документы из двух слов?


person monkut    schedule 20.02.2009    source источник
comment
И ответ тот же, спасибо! stackoverflow.com/questions/ 90075/   -  person monkut    schedule 05.03.2009


Ответы (6)


Используйте этот параметр в Word 2003:

Тинструменты | Сравните и объедините документы

Или это в Word 2007:

Обзор | Совместномпарить

Он запрашивает файл, с которым можно сравнить файл, который вы редактируете.


Этот вопрос является дубликатом Как сравнить два текстовых документа? и этот ответ является дубликатом моего ответа здесь.

person Nathan Fellman    schedule 20.02.2009
comment
Спасибо! это похоже на xdocdiff, упомянутый в этом вопросе (freemind.s57.xrea.com/ xdocdiff/e/index.html) можно использовать для создания вывода различий программным путем. - person monkut; 05.03.2009

Я не уверен, ищете ли вы следующую функциональность. У самой Microsoft есть опция в офисном пакете. Пожалуйста, проверьте http://support.microsoft.com/kb/306484

person lakshmanaraj    schedule 20.02.2009

Похоже, если у вас установлены word и win32com, получить текст относительно легко:

import win32com.client
app = win32com.client.Dispatch('Word.Application')
doc = app.Documents.Open('c:\\files\\mydocument.doc')
print doc.Content.Text
app.Quit()

Источник: http://win32com.goermezer.de/content/view/158/192/

Затем вы можете запустить стандартный diff для полученного текста.

person CTT    schedule 20.02.2009

Я использую Araxis Merge для сравнения различных исходных файлов, но он также извлекает и сравнивает различные форматы офисных документов, такие как MS Word, PDF, OpenDocument и т. д. Я думаю, что это будет лучшим выбором, если вы готовы немного потратиться. денег.

http://www.araxis.com/merge/index.html

person David Ma    schedule 20.02.2009
comment
Спасибо! Я не знал, что для этого были доступны инструменты. - person monkut; 20.02.2009

Вероятно, это не имеет значения (потому что вы уже это знаете), но в Word есть функция отслеживания изменений (которую нужно включить заранее). http://office.microsoft.com/en-us/word/HA012186901033.aspx

person Christopher Edwards    schedule 20.02.2009

Если это docx и вас устраивает java, вы можете использовать docx4j (ASL v2). Это имеет встроенную функциональность diff.

См. Пример сравнения документов

Если это документ, у него также есть базовый код для преобразования в docx (с использованием poi), что вы можете сделать в первую очередь.

person JasonPlutext    schedule 27.03.2009