【问题标题】:Catch Print event in C#.net?在 C#.net 中捕获打印事件?
【发布时间】:2013-06-10 10:19:40
【问题描述】:

我想要的是当我打印一个文档(这是数据库中的一条记录)时,这个文档不能再被用户更新,所以我想如果我能捕获打印事件并将打印字段设置为该记录为 true ,因此当用户尝试更新操作时将被取消。你们有什么想法吗? 谢谢

【问题讨论】:

  • 看到你的标签(特别是asp.net),我假设你需要这个事件以某种方式来自在网页上打开记录然后使用他的浏览器打印页面的用户?
  • 在 Web 客户端上打印要复杂得多。我知道并实现捕获打印和错误之类的方法是通过silverlight或通过activex。这些东西当然是在ie上玩的。

标签: c# asp.net events printing


【解决方案1】:

你可以这样做:

void PrintDocument(IDocument document)
{
    if (document.IsPrinted)
    {
        return;
    }

    // now print the document

    document.IsPrinted = true;

    SaveDocument(document);
}

如果您想要更合理的代码,或者不想在您的项目中实现这一点,也许您的相关代码和您遇到问题的部分会有所帮助。

【讨论】:

  • @kostasch。我不知道你的意思,这段代码不打印任何东西,它概述了只让一个动作发生一次的总体思路,该标志基于存储在某处的标志。 OP不能直接使用这段代码,而是借鉴一下思路。
  • 是的,你是对的,我会改变我的评论。但是这段代码是指服务器。如果客户进行打印,您将无法通过上述方式捕捉到事件。
  • 然后 OP 应该问 “我如何防止用户从浏览器打印一些东西”,答案是 “你不这样做” i>.
  • 是的,但是你能通过上面的方法捕捉到客户端打印的事件吗?我想不是。通过这个,您无法从服务器端的客户端捕获打印事件。
  • @kostasch。我知道您所说的:您无法从服务器阻止 Web 浏览器中的打印事件。我没有说我的代码做到了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-22
  • 1970-01-01
  • 2012-05-05
  • 2014-08-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多