2010-04-09 10 views
11

Pracuję nad projektem internetowym, w którym klient potrzebuje funkcjonalności, aby najpierw załadować jakiś dokument MS Word &, a następnie może porównać dowolne dwa z przesłanych dokumentów.Otwórz Microsoft Word w trybie "porównywania dokumentów" z wiersza poleceń

Pomysł, który wymyśliłem, to udostępnienie dokumentów za pomocą WEBDAV &, a następnie otwarcie obu dokumentów za pomocą wiersza poleceń z opcją "Porównaj obok siebie". W ten sposób będzie mógł porównać & modyfikować dwa dokumenty.

Problem polega na tym, że nie mogę znaleźć żadnego polecenia, które można uruchomić z wiersza polecenia, aby otworzyć dwa dokumenty w trybie porównania.

Ponadto, jeśli znasz inny sposób, aby osiągnąć tę funkcjonalność, udostępnij to mi.

Odpowiedz

1

Spojrzałem na listę command line switches i nie widziałem nic istotnego.

Można utworzyć aplikację konsoli w .NET, która otwiera program Word, ładuje do 2 dokumentów i przełącza program Word do trybu przeglądania dokumentów porównania. Zamiast uruchamiać program Word bezpośrednio z wiersza poleceń, uruchamiasz aplikację.

+0

Tak, wydaje się być sposobem, ale w jaki sposób mogę automatycznie zmienić tryb porównywania wyrazów? – araaku

+1

Użyj tej funkcji: http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.windows.comparesidebysidewith.aspx – ZippyV

4

To może być podejście (Visual Studio 2010)

I zmieszane razem dwa poniższe linki

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

do C# projekt konsoli, do którego dodany dodany I Numer referencyjny: .NET -> Microsoft.Office.Interop.Word wersja 14.0.0.0

tutaj źródło:

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:

  • Wymień 1.docx i 2.docx ciągami z linii poleceń
  • może obchodzenia się jakiś wyjątek
+0

To jest dokładnie to, czego szukałem. Dzięki! – Anssssss

Powiązane problemy