gpt4 book ai didi

c# - 检测 PrintDocument 何时成功打印(不仅仅是预览)

转载 作者:可可西里 更新时间:2023-11-01 08:42:41 29 4
gpt4 key购买 nike

我正在使用 PrintDocument 进行一些自定义打印在我的申请中。当我们的项目成功打印时,我需要记录。我最初是通过以下方式实现的:

 print_doc.EndPrint += (o,e) => printed_callback ();

让我的 printed_callback 在打印完成时被调用。但是,既然我添加了预览支持,我将以完全相同的方式构造的 PrintDocument 传递到 PrintPreviewDialog 中。 .这样做会导致在初始呈现预览所需的打印输出后调用 EndPrint 事件。

因此,即使用户点击“预览”然后关闭预览,我们的日志记录代码也会被调用。

关于如何区分真实打印输出和“预览打印”的任何建议?不幸的是,对于传递给 PrintPreviewDialogPrintDocument,我不能不连接到 EndPrint,因为用户可能会单击“打印”按钮在预览对话框中并触发打印输出。

最佳答案

好的,所以我实际上设法自己解决了这个问题,使用 PrintDocument.PrintController属性,并检查 Controller 的 IsPreview 属性。我的最终编码如下:

doc.EndPrint += (o,e) =>
{
if (doc.PrintController.IsPreview)
return;

print_callback ();
}

关于c# - 检测 PrintDocument 何时成功打印(不仅仅是预览),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6270546/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com