2010-04-09 3 views
11

Я работаю над веб-проектом, где клиенту нужны функции, чтобы сначала загрузить документ MS Word &, после чего он может сравнить любые два загруженных документа.Откройте Microsoft Word в режиме «сравнить документ» из командной строки

Идея, с которой я пришел, заключается в том, чтобы сначала сделать документы доступными с помощью WEBDAV &, затем откройте оба документа с помощью командной строки с опцией «Сравнить рядом». Таким образом он сможет сравнить & изменить два документа.

Проблема заключается в том, что я не могу найти какую-либо команду, которую можно запустить из командной строки, чтобы открыть два документа в режиме сравнения.

Кроме того, если вы знаете какой-либо другой способ достижения этой функциональности, пожалуйста, поделитесь им со мной.

ответ

1

Я просмотрел список command line switches, и я ничего не увидел.

Вы можете создать консольное приложение в .net, которое открывает Word, загружает в 2 документа и переключает Word в режим просмотра документов сравнения. Вместо запуска Word непосредственно из командной строки вы запускаете свое приложение.

+0

Да, похоже, это способ, но как я могу автоматически переключать слово в режиме сравнения? – araaku

+1

Используйте эту функцию: http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.windows.comparesidebysidewith.aspx – ZippyV

4

Это может быть подход (для Visual Studio 2010)

I смешивают вместе следующие две ссылки

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

Смежные вопросы