天天看點

WORD轉XPS格式

using oWord = Microsoft.Office.Interop.Word;

 private void button1_Click(object sender, EventArgs e)

        {

            if(this.openFileDialog1.ShowDialog()!=DialogResult.OK)

            {

                return;

            }

            string strWordFile = openFileDialog1.FileName;

            PrintWord(strWordFile);

        }

        public void PrintWord(string wordfile)

        {

            oWord.ApplicationClass word = new oWord.ApplicationClass();

            Type wordType = word.GetType();

            //打開WORD文檔

            oWord.Documents docs = word.Documents;

            Type docsType = docs.GetType();

            object objDocName = wordfile;

            oWord.Document doc = (oWord.Document)docsType.InvokeMember("Open", System.Reflection.BindingFlags.InvokeMethod, null, docs, new Object[] { objDocName, true, true });

            //列印輸出到指定檔案

            //可以使用 doc.PrintOut();方法,次方法調用中的參數設定較繁瑣,建議使用 Type.InvokeMember 來調用時可以不用将PrintOut的參數設定全,隻設定4個主要參數

            Type docType = doc.GetType();

            object printFileName = wordfile + ".xps";//生成的XPS檔案的位置,此處還有.doc?

            docType.InvokeMember("PrintOut", System.Reflection.BindingFlags.InvokeMethod, null, doc, new object[] { false, false, oWord.WdPrintOutRange.wdPrintAllDocument, printFileName });

            //退出WORD

            wordType.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod, null, word, null);

        }