获取两个MSWord doc文件的差异并输出到html

时间:2009-02-20 04:54:58

标签: python ms-word diff

  

可能重复:
  How to compare two word documents?

如何以编程方式获取两个单词.doc文档的差异? 然后,您可以在其中获取结果输出并生成结果的html文件。 (正如您期望在普通的gui diff工具中看到的那样)

我想如果你通过COM抓取文档并将输出转换为文本,你可以提供一些 diff功能。想法?

有没有办法在没有Windows和COM的情况下执行此操作?

(最好是在python中,但我对其他解决方案持开放态度)

更新

关于msword diff工具的原始问题是重复的:(感谢Nathan)

How to compare two word documents?

6 个答案:

答案 0 :(得分:7)

在Word 2003中使用此选项:

  

T ools |比较并合并 D ocuments

或者在Word 2007中:

  

R eview |共同的 PARE

它会提示您输入一个文件,用于比较您正在编辑的文件。


此问题与How to compare two word documents?重复,此答案与my answer there重复。

答案 1 :(得分:3)

我不确定您是否在寻找以下功能。 微软本身可以选择办公套件, 请检查 http://support.microsoft.com/kb/306484

答案 2 :(得分:3)

看起来如果您安装了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/

然后,您可以在生成的文本上运行标准差异。

答案 3 :(得分:3)

我使用Araxis Merge来比较各种源文件,但它也提取和比较各种办公文档格式,如MS Word,PDF,OpenDocument等。我认为如果你愿意,这将是你最好的选择。花一点钱。

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

答案 4 :(得分:0)

可能不相关(因为您已经知道这一点)但Word确实有一个更改跟踪功能(需要事先打开)。 http://office.microsoft.com/en-us/word/HA012186901033.aspx

答案 5 :(得分:0)

如果它是docx,并且您对java感到满意,则可以使用docx4j(ASL v2)。这内置了diff功能。

请参阅CompareDocuments example

如果是一个doc,它还有转换为docx(使用poi)的基本代码,你可以先做。