bool NameProcess(string fileName, out int copies, out WdPrintOutRange wpr, out int from, out int to, out string username) { try { string[] printSetting = fileName.Split(','); copies = int.Parse(printSetting[0]); string[] fromTo = printSetting[1].Split('-'); if (printSetting[1].Contains("0-")) { wpr = WdPrintOutRange.wdPrintAllDocument; from = to = 0; } else { wpr = WdPrintOutRange.wdPrintFromTo; from = int.Parse(fromTo[0]); to = int.Parse(fromTo[1]); } username = printSetting[2]; return(true); } catch (Exception ex) { copies = 0; wpr = WdPrintOutRange.wdPrintAllDocument; from = to = 0; username = "******"; Log.LogRecord(fileName + "文件名不规范"); Log.LogRecord(ex.Message); return(false); } }
void PrintWord(string wordPath, int copies, WdPrintOutRange wdPrintOutRange, int from, int to) { Application printWordApp = new Application(); printWordApp.Visible = false; Document wordDoc = printWordApp.Documents.Open(wordPath); //指定word object oMissing = Type.Missing; //默认状态 /* * wdPrintAllDocument 打印全部(默认) * wdPrintFromTo 从哪里打印到哪里 */ object printRange = wdPrintOutRange; //打印范围 object fromPageCode = (wdPrintOutRange == WdPrintOutRange.wdPrintAllDocument ? oMissing : from.ToString()); //从哪里开始打印 object toPageCode = (wdPrintOutRange == WdPrintOutRange.wdPrintAllDocument ? oMissing : to.ToString()); //打印到哪一页 object copiesQuantity = copies.ToString(); //份数 printWordApp.PrintOut( false , oMissing , printRange //printRange , oMissing , fromPageCode //from , toPageCode ///to , oMissing , copiesQuantity //copies , oMissing , oMissing , oMissing , true //逐份打印 , oMissing , oMissing , oMissing ); wordDoc.Close(); printWordApp.Quit(); wordDoc = null; printWordApp = null; GC.WaitForPendingFinalizers(); GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); }