从命令提示符中打开Microsoft Word的“比较文档”模式

19

我正在从事一个网络项目,客户需要实现以下功能:首先上传一些MS Word文档,然后可以比较其中任意两个文档。

我想到的方法是先使用WEBDAV使文档可用,然后使用命令行打开两个文档,并选择“并排比较”选项。这样他就能够比较和修改两个文档。

问题在于,我找不到任何可以从命令提示符中运行以比较模式打开两个文档的命令。

如果您知道其他实现此功能的方法,请与我分享。

3个回答

9

7

这可能是一种方法(适用于Visual Studio 2010)

我混合了以下两个链接

http://social.msdn.microsoft.com/Forums/en-US/b7f4b480-ca1c-49a1-a2ea-b1d1cf5ad56b/how-do-you-compare-two-word-documents-in-c

http://msdn.microsoft.com/en-us/library/vstudio/ee342218%28v=vs.100%29.aspx

在C#控制台项目中,我将它们混合在一起,并添加了引用:.NET --> Microsoft.Office.Interop.Word Version 14.0.0.0

以下是源代码:

Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using Word = Microsoft.Office.Interop.Word;
//using Office = Microsoft.Office.Core;
//using Microsoft.Office.Tools.Word;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Word.Application wordApp = new Word.Application();
            wordApp.Visible = false;
            object wordTrue = (object)true;
            object wordFalse = (object)false;
            object fileToOpen = @"C:\Temp\1.docx";
            object missing = Type.Missing;
            Word.Document doc1 = wordApp.Documents.Open(ref fileToOpen,
                   ref missing, ref wordFalse, ref wordFalse, ref missing,
                   ref missing, ref missing, ref missing, ref missing,
                   ref missing, ref missing, ref wordTrue, ref missing,
                   ref missing, ref missing, ref missing);

            object fileToOpen1 = @"C:\Temp\2.docx";
            Word.Document doc2 = wordApp.Documents.Open(ref fileToOpen1,
                   ref missing, ref wordFalse, ref wordFalse, ref missing,
                   ref missing, ref missing, ref missing, ref missing,
                   ref missing, ref missing, ref missing, ref missing,
                   ref missing, ref missing, ref missing);

            Word.Document doc = wordApp.CompareDocuments(doc1, doc2, Word.WdCompareDestination.wdCompareDestinationNew, Word.WdGranularity.wdGranularityWordLevel,
                true, true, true, true, true, true, true, true, true, true, "", true);

            doc1.Close(ref missing,ref missing,ref missing);
            doc2.Close(ref missing,ref missing,ref missing);
            wordApp.Visible = true;
        }

    }
}

待办事项:

  • 用命令行中的字符串替换 1.docx 和 2.docx
  • 可能需要一些异常处理

1
这正是我正在寻找的。谢谢! - Anssssss

2
我查看了命令行开关列表,但没有找到任何相关内容。您可以在.NET中创建一个控制台应用程序,打开Word,加载两个文档并将Word切换到比较文档视图模式。不要直接从命令行启动Word,而是启动您的应用程序。

是的,似乎有一种方法,但我如何在比较模式下自动切换单词? - araaku
1
使用此函数: http://msdn.microsoft.com/zh-cn/library/microsoft.office.interop.word.windows.comparesidebysidewith.aspx - ZippyV

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接