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