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