2010-04-09 15 views
11

Estoy trabajando en un proyecto web donde el cliente necesita una funcionalidad para cargar primero algún documento de MS Word & y luego puede comparar cualquiera de los dos documentos cargados.Abrir Microsoft Word en modo "comparar documento" desde el símbolo del sistema

La idea que se me ocurrió es primero hacer que los documentos estén disponibles usando WEBDAV & luego abrir ambos documentos usando la línea de comando con la opción "Comparar lado a lado". De esta forma, podrá comparar & modificar dos documentos.

El problema es que no puedo encontrar ningún comando que se pueda ejecutar desde el símbolo del sistema para abrir dos documentos en el modo de comparación.

Además, si conoce alguna otra forma de lograr esta funcionalidad, por favor, compártelo conmigo.

Respuesta

1

He visto la lista de command line switches y no he visto nada relevante.

Puede crear una aplicación de consola en .net que abre Word, carga en los 2 documentos y cambia Word al modo de vista de documentos de comparación. En lugar de ejecutar Word directamente desde la línea de comando, inicia su aplicación.

+0

Sí, parece ser una forma, pero ¿cómo puedo cambiar automáticamente la palabra en el modo de comparación? – araaku

+1

Utilice esta función: http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.windows.comparesidebysidewith.aspx – ZippyV

4

Esto puede ser un enfoque (para Visual Studio 2010)

me mezclan los dos enlaces siguientes

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

a un proyecto de C# consola a la que añadí añade la Referencia: .NET -> Microsoft.Office.Interop.Word Versión 14.0.0.0

aquí la fuente:

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:

  • Reemplazar 1.docx y 2.docx con cuerdas desde la línea de comandos
  • tal vez algo de la gestión de excepciones
+0

Esto es exactamente lo que estaba buscando. ¡Gracias! – Anssssss

Cuestiones relacionadas