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); } }
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"); }
public Printer() { PaperOffState = new PaperOffState(this); PowerOffState = new PowerOffState(this); PrintState = new PrintState(this); WaitingState = new WaitingState(this); _state = WaitingState; }
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(); }
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(); } }
/** Set listener to print in ui */ public void setListener(PrintState listener) { printListener = listener; }