3

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

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事件发生在文档呈现(并发送到打印机)但尚未打印在纸上时。

我应该检查文件是否实际打印在纸上。我怎样才能做到这一点?

4

1 回答 1

1

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

在一般情况下,您无法使用抽象打印机实现您想要的。

即使您将使用 spooler API 监视特定打印机的打印作业状态,您也可以遇到这种情况,当作业被发送到打印机时(因此,spooler 认为它已被打印),但没有实际打印(例如,纸张已用完,用户已重新启动打印机)。

于 2013-10-04T08:10:54.543 回答