.net结束打印事件 [英] .net end printing event

查看:40
本文介绍了.net结束打印事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用 PrintDocument 使用以下代码的类:

i`m working with PrintDocument class using the following code:

printDocument.PrintPage += (s, ev) =>
{
      ev.Graphics.DrawImage(bitmap, Point.Empty);
      ev.HasMorePages = false;
};
printDocument.EndPrint += (sender, args) =>
{
      var buyerDTO = buyerRow.Buyer;
      buyerDTO.EnvelopePrinted = true;
      View.Control.Invoke(new Action(() => View.UpdateBuyer(buyerDTO)));
      Manager.UpdateBuyer(buyerDTO);
      ((IDisposable)sender).Dispose();

      View.Control.Invoke(
                          new Action(() => View.SetResetPrintStatusEnable(View.CurrentBuyers.Any(buyer => buyer.EnvelopePrinted))));
};
printDocument.Print();

据我了解 EndPrint 呈现(并发送到打印机)但尚未打印在纸上的文档时,发生事件.

as i understand EndPrint event occurs when document rendered (and sent to printer), but not yet printed on paper.

我应该检查文件是否实际打印在纸上.我该怎么办?

I should check is document actually printed on paper. How can i do this?

推荐答案

我应该检查文档是否实际打印在纸上

I should check is document actually printed on paper

在一般情况下,使用抽象打印机无法实现所需的功能.

In general case, you can't achieve what you want with abstract printer.

即使您使用后台处理程序API监视特定打印机的打印作业状态,也可能遇到将作业发送到打印机时的情况(因此,后台处理程序认为是已打印),但是没有实际的情况.打印(例如,纸张已用完,并且用户重新启动了打印机).

Even if you'll monitor printing job state for particular printer, using spooler API, you can run into the case, when job was sent to printer (thus, spooler thinks, that it was printed), but there were no actual printing (e.g., paper has ended, and the user has rebooted printer).

这篇关于.net结束打印事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆