Pet*_*ete 11 .net c# printing winforms
我在我的应用程序中使用PrintDocument进行一些自定义打印.当我们的项目成功打印时,我需要记录.我最初通过以下方式实现了这一点:
print_doc.EndPrint += (o,e) => printed_callback ();
Run Code Online (Sandbox Code Playgroud)
printed_callback
打印完成后调用我的调用.但是,现在我正在添加预览支持,我PrintDocument
将以完全相同的方式传递给PrintPreviewDialog.这样做会导致在EndPrint
初始呈现预览所需的打印输出后调用事件.
因此,即使用户单击"预览"然后关闭预览,也会调用我们的日志记录代码.
有关如何区分真实打印输出和"预览打印"的任何建议?不幸的是,我不能只是因为用户可能会点击预览对话框中的"打印"按钮并触发打印输出EndPrint
而PrintDocument
传递给PrintPreviewDialog
用户.
Pet*_*ete 14
好的,所以我实际上设法自己弄清楚了,使用PrintDocument.PrintController属性,并检查IsPreview
控制器的属性.我的最终编码最终如下:
doc.EndPrint += (o,e) =>
{
if (doc.PrintController.IsPreview)
return;
print_callback ();
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7214 次 |
最近记录: |