2010-04-09 113 views
11

我正在开发一个Web项目,其中客户端需要先上传一些MS Word文档的功能&然后他可以比较任何两个上传的文档。在命令提示符下的“比较文档”模式下打开Microsoft Word

我想出的想法是首先使用WEBDAV &使文档可用,然后使用带有“并排比较”选项的命令行打开这两个文档。这样他就可以比较&修改两个文件。

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

此外,如果您知道任何其他方式来实现此功能,那么请与我分享。

回答

1

我看过command line switches的列表,我没有看到任何相关的东西。

您可以在.net中创建一个控制台应用程序,该应用程序打开Word,加载2个文档并将Word切换到比较文档视图模式。不是直接从命令行启动Word,而是启动应用程序。

+0

是的,似乎是一种方式,但我怎么能自动切换字比较模式? – araaku 2010-04-09 13:22:53

+1

使用此功能: http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.windows.comparesidebysidewith.aspx – ZippyV 2010-04-10 15:52:32

4

这可能是一种方法(用于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版本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; 
     } 

    } 
} 

TODO:

  • 更换1.docx和2.docx与命令行
  • 串也许有些异常处理
+0

这正是我所期待的。谢谢! – Anssssss 2015-01-09 20:47:59

相关问题