如何以编程方式获取两个单词.doc文档的差异? 然后,您可以在其中获取结果输出并生成结果的html文件。 (正如您期望在普通的gui diff工具中看到的那样)
我想如果你通过COM抓取文档并将输出转换为文本,你可以提供一些 diff功能。想法?
有没有办法在没有Windows和COM的情况下执行此操作?
(最好是在python中,但我对其他解决方案持开放态度)
更新
关于msword diff工具的原始问题是重复的:(感谢Nathan)
答案 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等。我认为如果你愿意,这将是你最好的选择。花一点钱。
答案 4 :(得分:0)
可能不相关(因为您已经知道这一点)但Word确实有一个更改跟踪功能(需要事先打开)。 http://office.microsoft.com/en-us/word/HA012186901033.aspx
答案 5 :(得分:0)
如果它是docx,并且您对java感到满意,则可以使用docx4j(ASL v2)。这内置了diff功能。
如果是一个doc,它还有转换为docx(使用poi)的基本代码,你可以先做。