Откройте Microsoft Word в режиме «Сравнить документ» из командной строки - PullRequest
15 голосов
/ 09 апреля 2010

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

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

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

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

Ответы [ 3 ]

6 голосов
/ 30 сентября 2014

Это может быть подход (для 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 строками из командной строки
  • возможно некоторая обработка исключений
2 голосов
/ 11 сентября 2017

Существует проект для этого с использованием скрипта PowerShell ExtDiff: https://github.com/ForNeVeR/ExtDiff

2 голосов
/ 09 апреля 2010

Я посмотрел список переключателей командной строки и не увидел ничего релевантного.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...