Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Word automation使用DefaultLegalBlackline打开两个文档以比较文档_C#_.net_Ms Word_Automation_Office Interop - Fatal编程技术网

C# Word automation使用DefaultLegalBlackline打开两个文档以比较文档

C# Word automation使用DefaultLegalBlackline打开两个文档以比较文档,c#,.net,ms-word,automation,office-interop,C#,.net,Ms Word,Automation,Office Interop,我尝试通过代码打开两个文档,让用户可以看到它们,以比较版本(法律黑线)-文档的编辑将在可见文档中完成 这是我的代码片段: objectoMissing = System.Reflection.Missing.Value; //Start Word and create a new document. Microsoft.Office.Interop.Word._Application oWord; Microsoft.Office.Interop.Word._Document oDoc; oW

我尝试通过代码打开两个文档,让用户可以看到它们,以比较版本(法律黑线)-文档的编辑将在可见文档中完成

这是我的代码片段:

objectoMissing = System.Reflection.Missing.Value;

//Start Word and create a new document.
Microsoft.Office.Interop.Word._Application oWord;
Microsoft.Office.Interop.Word._Document oDoc;
oWord = new Microsoft.Office.Interop.Word.Application();
oWord.Visible = true;

oDoc = oWord.Documents.Add(ref oMissing, ref oMissing, ref oMissing, ref oMissing);

oWord.DefaultLegalBlackline.....

我找到了一个解决方案:

oDoc1 = oWord.Documents.Open(@"Word1.docx", oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing);

oDoc2 = oWord.Documents.Open(@"Word2.docx", oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing);

oDoc = oWord.CompareDocuments(oDoc1, oDoc2, Microsoft.Office.Interop.Word.WdCompareDestination.wdCompareDestinationOriginal, Microsoft.Office.Interop.Word.WdGranularity.wdGranularityCharLevel, true, false, true, true, false, false, false, false, false, false, "", false);

oDoc2.Close(oMissing,oMissing,oMissing);
    using WordR = Microsoft.Office.Interop.Word;
    namespace WordTest
    {
        class TestComparison
        {
            private void openWordForComparison(object filenameMaster, object filenameModified)
            {
                WordR.Application app = null;
                WordR.Document docMaster = null;
                WordR.Document docModified = null;
                WordR.Document docComparison = null;
                object missing = System.Reflection.Missing.Value;
                //create a readonly variable of object type and assign it to false.
                object readonlyobj = false;


                //create a word application object for processing the word file.
                app = new WordR.Application();

                // Open frist document
                docMaster = app.Documents.Open(
                ref filenameMaster, ref missing, ref readonlyobj, ref missing, ref missing,
                ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);

                // Open second document
                docModified = app.Documents.Open(
                ref filenameModified, ref missing, ref readonlyobj, ref missing, ref missing,
                ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);

                // open a new document for comparison of documents
                docComparison = app.CompareDocuments(docMaster, docModified);

                // close first and second document to display comparison only
                docMaster.Close(ref missing, ref missing, ref missing);
                docModified.Close(ref missing, ref missing, ref missing);

                app.Visible = true;

            }
        }
    }

是否有一种解决方案不首先打开两个文档,然后关闭第二个未打开的文档,因为它不是必需的。

请参阅下面的类作为示例解决方案:

oDoc1 = oWord.Documents.Open(@"Word1.docx", oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing);

oDoc2 = oWord.Documents.Open(@"Word2.docx", oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing);

oDoc = oWord.CompareDocuments(oDoc1, oDoc2, Microsoft.Office.Interop.Word.WdCompareDestination.wdCompareDestinationOriginal, Microsoft.Office.Interop.Word.WdGranularity.wdGranularityCharLevel, true, false, true, true, false, false, false, false, false, false, "", false);

oDoc2.Close(oMissing,oMissing,oMissing);
    using WordR = Microsoft.Office.Interop.Word;
    namespace WordTest
    {
        class TestComparison
        {
            private void openWordForComparison(object filenameMaster, object filenameModified)
            {
                WordR.Application app = null;
                WordR.Document docMaster = null;
                WordR.Document docModified = null;
                WordR.Document docComparison = null;
                object missing = System.Reflection.Missing.Value;
                //create a readonly variable of object type and assign it to false.
                object readonlyobj = false;


                //create a word application object for processing the word file.
                app = new WordR.Application();

                // Open frist document
                docMaster = app.Documents.Open(
                ref filenameMaster, ref missing, ref readonlyobj, ref missing, ref missing,
                ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);

                // Open second document
                docModified = app.Documents.Open(
                ref filenameModified, ref missing, ref readonlyobj, ref missing, ref missing,
                ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);

                // open a new document for comparison of documents
                docComparison = app.CompareDocuments(docMaster, docModified);

                // close first and second document to display comparison only
                docMaster.Close(ref missing, ref missing, ref missing);
                docModified.Close(ref missing, ref missing, ref missing);

                app.Visible = true;

            }
        }
    }