任务是创建用户从特定计算机发送的所有.pdf打印作业的日志。打印文件后,我想打开文件(以编程方式)并从中提取一些信息。
我知道我可以使用Print Spooler API检索所有打印机的列表,然后使用GetJob()查找有关新作业的信息。但是,JOB_INFO结构不包含完整的文件路径,但这也是我打开文件所需要的。这是有道理的,因为我也可以直接从任何程序发送打印作业,而根本没有任何实际文件。
有没有办法挂钩到默认的打印对话框?或者也许是“打印...” - Windows资源管理器中的按钮?不确定从哪里开始寻找,我会很高兴能得到任何暗示。
理想情况下,在C#中,但任何语言都可以。
答案 0 :(得分:1)
打印监视器的想法听起来不错,但我现在已经采用了另一种(可能更简单)的方式。
这取决于在打印之前必须使用PDF查看器打开.pdf文件的事实。该方法需要定期检查所有打印作业和最近的文件,但这可能是相当高性能的。