Esempio n. 1
0
        public override bool Equals(object o)
        {
            if (!(o is FileInfo))
            {
                return(false);
            }
            var v = o as FileInfo;

            if (!StartTime.Equals(v.StartTime))
            {
                return(false);
            }
            if (!EndTime.Equals(v.EndTime))
            {
                return(false);
            }
            if (!PrintState.Equals(v.PrintState))
            {
                return(false);
            }
            if (!JobId.Equals(v.JobId))
            {
                return(false);
            }
            if (!Name.Equals(v.Name))
            {
                return(false);
            }

            return(true);
        }
 private async void BeforePrint()
 {
     try
     {
         Progress<PrintProgressValue> progress = new Progress<PrintProgressValue>();
         progress.ProgressChanged += (sender, args) =>
           {
               this.progress.Maximum = args.MaxValue;
               this.progress.Value = args.CurrentValue;
               this.lbl_Info.Content = string.Format("当前正发送第 {0} 个数据,共 {1} 个数据"
                   , args.CurrentValue, args.MaxValue);
           };
         await TaskEx.Delay(2);//等待2秒,显示UI
         await TaskEx.Run(() =>
         {
             //标识打印状态
             printState = PrintState.开始打印;
             BeginPrint(progress);
         });
         btn_QuitOrChanel.Content = "关         闭";
         lbl_Info.Content = isCancel ? "打印已取消" : "打印已完成";
         if (isCancel) this.Close();//如果是点击的取消则退出界面,如果是打印正常完成则停留在此界面
     }
     catch (Exception ex)
     {
         ModernDialog.ShowMessage(ex.Message, "消息", MessageBoxButton.OK);
     }
 }
Esempio n. 3
0
 public static void Send(PrintState state, string message)
 {
     Console.ForegroundColor = _printColors[(int)state];
     Console.Write("[" + state.ToString() + "]: ");
     Console.ForegroundColor = ConsoleColor.White;
     Console.Write(message + "\n");
 }
Esempio n. 4
0
 public Printer()
 {
     PaperOffState = new PaperOffState(this);
     PowerOffState = new PowerOffState(this);
     PrintState    = new PrintState(this);
     WaitingState  = new WaitingState(this);
     _state        = WaitingState;
 }
Esempio n. 5
0
        private void PrintDocumentOnPrintPage(PrintPageEventArgs e, PrintState state)
        {
            var destinationRect = new RectangleF(
                x: e.Graphics.VisibleClipBounds.X * e.Graphics.DpiX / 100.0f,
                y: e.Graphics.VisibleClipBounds.Y * e.Graphics.DpiY / 100.0f,
                width: e.Graphics.VisibleClipBounds.Width * e.Graphics.DpiX / 100.0f,
                height: e.Graphics.VisibleClipBounds.Height * e.Graphics.DpiY / 100.0f);

            using PdfPage page = state.Document.OpenPage(state.CurrentPageIndex);
            page.RenderTo(e.Graphics, destinationRect);
            e.HasMorePages = state.AdvanceToNextPage();
        }
Esempio n. 6
0
        public void Print(Stream pdfStream, string printerName)
        {
            if (pdfStream == null)
            {
                throw new ArgumentNullException(nameof(pdfStream));
            }

            PdfDocument document = PdfDocument.Open(pdfStream);

            _logger.LogInformation($"Printing PDF containing {document.PageCount} page(s) to printer '{printerName}'");

            using var printDocument = new PrintDocument();
            printDocument.PrinterSettings.PrinterName = printerName;
            var state = new PrintState(document);

            printDocument.PrintPage += (_, e) => PrintDocumentOnPrintPage(e, state);
            printDocument.Print();
        }
        private void BeginPrint(IProgress<PrintProgressValue> progress)
        {
            Services.NewStudentIdServicesClient service = new Services.NewStudentIdServicesClient();
            LocalPrintServer lps = new LocalPrintServer();
            PrintQueue pq = lps.DefaultPrintQueue;
            try
            {
                PrintProgressValue progressValue = new PrintProgressValue();
                progressValue.MaxValue = printDataTable.Rows.Count;
                foreach (DataRow dr in printDataTable.Rows)
                {
                    //标识开始打印状态
                    printState = PrintState.正在打印;
                    //如果点击了取消则退出打印循环
                    if (isCancel) break;

                    pq.Refresh();
                    //控制打印机任务最多只能有2个
                    while (pq.NumberOfJobs > 1 &!isCancel)
                    {
                        pq.Refresh();
                    }
                    DataTable dt = printDataTable.Clone();
                    dt.TableName = "Student";
                    dt.ImportRow(dr);
                    //dr["打印状态"] = "正在打印";
                    //获取学生照片
                    Byte[] bytes = service.GetStudentImage(dr["考生号"].ToString());
                    if (bytes != null)
                    {
                        MemoryStream ms = new MemoryStream();
                        ms.Write(bytes, 0, bytes.Length);
                        //打印照片
                        PrintHelper.Print(dt, templateFile, ms);
                    }
                    else PrintHelper.Print(dt, templateFile);
                    //更新数据库
                    NewStudentIdModel model = service.GetModelById(int.Parse(dr["ID"].ToString()));
                    if (model.DYXH == 0)
                    {
                        //设置打印序号
                        model.DYXH = service.GetMaxPrintNum(int.Parse(SystemConfig.CurrentYear)) + 1;
                    }
                    //3表示通知书和邮寄单都打印
                    switch (printType)
                    {
                        case PrintType.通知书打印:
                            {
                                if (model.DYBZ != 1 || model.DYBZ != 3)
                                    model.DYBZ = ((int)printType) + model.DYBZ;
                            }; break;
                        case PrintType.邮寄单打印:
                            {
                                if (model.DYBZ != 2 || model.DYBZ != 3)
                                    model.DYBZ = ((int)printType) + model.DYBZ;
                            }; break;
                    }
                    service.NewStudentIdUpdate(model);
                    if (progress != null)
                    {
                        progressValue.CurrentValue++;
                        progress.Report(progressValue);
                    }
                }
                //dr["打印状态"] = "打印完成";
            }
            finally
            {
                //标识开始打印状态
                printState = PrintState.完成打印;
                service.Close();
            }
        }
Esempio n. 8
0
 /**
 Set listener to print in ui
     */
 public void setListener(PrintState listener)
 {
     printListener = listener;
 }