Esempio n. 1
0
 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);
     }
 }
Esempio n. 2
0
        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();
        }