//要列印的檔案路徑
object wordFile = lstDoc.SelectedValue.ToString();//@"c:\test.doc";
object oMissing = Missing.Value;
//自訂object類型的布爾值
object oTrue = true;
object oFalse = false;
object Copies = nudCopies.Value; //列印份數
object wdPrintFrom = txtPage1.Text;//列印的起始頁碼
object wdPrintTo = txtPage2.Text;//列印的結束頁碼
object doNotSaveChanges = Microsoft.Office.Interop.Word.WdSaveOptions.wdDoNotSaveChanges;
//定義WORD Application相關
Microsoft.Office.Interop.Word.Application appWord = new Microsoft.Office.Interop.Word.Application();
//WORD程式不可見
appWord.Visible = false;
//不彈出警告框
appWord.DisplayAlerts = Microsoft.Office.Interop.Word.WdAlertLevel.wdAlertsNone;
//先儲存預設的印表機
string defaultPrinter = appWord.ActivePrinter;
//開啟要列印的檔案
Microsoft.Office.Interop.Word.Document doc = appWord.Documents.Open(
ref wordFile,
ref oMissing,
ref oTrue,
ref oFalse,
ref oMissing, ref oMissing,ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing,ref oMissing,ref oMissing, ref oMissing);
//設定指定的印表機
appWord.ActivePrinter = cboInstalledPrinters.SelectedText; //"\\\\10.10.96.236\\HP Deskjet 6500 Series";
//列印
doc.PrintOut(
ref oTrue, //Background 此處為true,表示後台列印
ref oFalse,
ref oMissing, //Range 頁面範圍
ref oMissing,
ref wdPrintFrom, //當 Range 設定為 wdPrintFromTo 時的起始頁碼
ref wdPrintTo,//當 Range 設定為 wdPrintFromTo 時的結束頁碼
ref oMissing,
ref Copies, //要列印的份數
ref oMissing,ref oMissing, ref oMissing , ref oMissing, ref oMissing,ref oMissing, ref oMissing,ref oMissing, ref oMissing, ref oMissing);
lblMessage.Text = "正在列印,請稍候!";
//列印完關閉WORD檔案
doc.Close(ref doNotSaveChanges, ref oMissing, ref oMissing);
//還原原來的預設印表機
appWord.ActivePrinter = defaultPrinter;
//退出WORD程式
appWord.Quit(ref oMissing, ref oMissing, ref oMissing);
doc = null;
appWord = null;
lblMessage.Text = "列印成功!";
參數
-
Background
-
如果為 true,則可以讓自訂項代碼在 Microsoft Office Word 列印文檔時繼續工作。
-
Append
-
如果為 true,則會將文檔追加到 OutputFileName 參數指定的檔案;如果為 false,則會改寫 OutputFileName 的內容。
-
Range
-
頁面範圍。可以是任何 WdPrintOutRange 值。
-
OutputFileName
-
如果 PrintToFile 為 true,則此參數指定輸出檔案的路徑和檔案名稱。
-
From
-
當 Range 設定為 wdPrintFromTo 時的起始頁碼。
-
To
-
當 Range 設定為 wdPrintFromTo 時的結束頁碼。
-
Item
-
要列印的項。可以是任何 WdPrintOutItem 值。
-
Copies
-
要列印的份數。
-
Pages
-
要列印的頁碼和頁碼範圍,由逗號分隔。例如,“2, 6-10”意為列印第 2 頁和第 6、7、8、9、10 頁。
-
PageType
-
要列印的頁面的類型。可以是任何 WdPrintOutPages 值。
-
PrintToFile
-
如果為 true,則將印表機指令發送到檔案。請確保使用 OutputFileName 指定一個檔案名稱。
-
Collate
-
在列印多份文檔時,如果為 true,則先列印該文檔的所有頁,然後再列印下一份。
-
ActivePrinterMacGX
-
此參數僅在 Microsoft Office Macintosh Edition 中可用。有關此參數的其他資訊,請查詢 Microsoft Office Macintosh Edition 附帶的語言參考說明。
-
ManualDuplexPrint
-
如果為 true,則在沒有雙面列印裝置的印表機上列印雙面文檔。如果此參數為 true,則忽略 PrintBackground 和 PrintReverse 屬性。使用 PrintOddPagesInAscendingOrder 和 PrintEvenPagesInAscendingOrder 屬性在手動進行雙面列印時控制輸出。您可能無法使用此參數,具體取決於您選擇或安裝的語言支援(例如,美國英語)。
-
PrintZoomColumn
-
希望 Word 在一頁上水平布置的頁數。可以為 1、2、3 或 4。與 PrintZoomRow 參數一起使用時可在單張紙上列印多頁。
-
PrintZoomRow
-
希望 Word 在一頁上垂直布置的頁數。可以為 1、2 或 4。與 PrintZoomColumn 參數一起使用時可在單張紙上列印多頁。
-
PrintZoomPaperWidth
-
希望 Word 將列印頁縮放到的寬度(以緹表示,20 緹 = 1 磅,72 磅 = 1 英寸)。
-
PrintZoomPaperHeight
-
希望 Word 將列印頁縮放到的高度(以緹表示,20 緹 = 1 磅,72 磅 = 1 英寸)。
備忘