我在C#.NET中编写了一个Excel加载项。当用户打开Excel工作簿并在工作表上打印时,excel会执行打印。 excel只引发了一个通知,即AppEvents.Workbbok_BeforePrint()事件。之后,在打印页面之前没有为每个页面生成事件。
我已经分析了从excel方面接收通知的方法。但找不到一个。 然后我尝试了从打印机/打印后台处理程序接收通知的选项。 如何从打印机/打印假脱机程序获取通知,以便我收到每个打印页面的通知。
请帮帮我。
谢谢和问候, Sundareswaran Senthilvel
答案 0 :(得分:0)
这很难做到,特别是如果打印作业中没有很多页面的话。它可能比它的价值更多的工作。 :)
但是,您可以使用WinAPI函数EnumJobs和GetJob来执行此操作。
致电OpenPrinter获取打印机句柄。
使用级别2调用GetPrinter以查找作业数。
致电EnumJobs。检查JOB_INFO_1,JOB_INFO_2或JOB_INFO_3(取决于您要求的信息 - 上述其他页面上的链接以及它们告诉您的内容),直到您从Excel找到打印作业。
使用该JobID调用GetJob以获取有关打印操作当前状态的信息。