天天看点

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);

        }