Printing 如何在打印监视器API中获取打印内容并将其保存到文件?

Printing 如何在打印监视器API中获取打印内容并将其保存到文件?,printing,port,monitor,wdk,Printing,Port,Monitor,Wdk,我的要求: 用户在任何软件中单击“打印”按钮都可以执行以下作业: 将打印作业保存到硬盘上的pdf/jpeg/bmp。 将此打印作业发送到打印机并打印。 我只是在几天后学习打印监视器示例,跟随msdn的WDK端口监视器示例,但我不知道从哪里获取打印内容,根据msdn,端口监视器将原始数据发送到内核模式端口驱动程序 我知道LcmStartDocPort调用CreateFile,LcmWritePort 调用WriteFile,似乎这两个函数做了通信 内核模式端口驱动程序? 看来我需要抓取这些原始数据

我的要求:

用户在任何软件中单击“打印”按钮都可以执行以下作业:

将打印作业保存到硬盘上的pdf/jpeg/bmp。 将此打印作业发送到打印机并打印。 我只是在几天后学习打印监视器示例,跟随msdn的WDK端口监视器示例,但我不知道从哪里获取打印内容,根据msdn,端口监视器将原始数据发送到内核模式端口驱动程序

我知道LcmStartDocPort调用CreateFile,LcmWritePort 调用WriteFile,似乎这两个函数做了通信 内核模式端口驱动程序? 看来我需要抓取这些原始数据并将其保存到本地磁盘?
有什么建议吗?谢谢大家!

您好,这篇文章中有很多打印机/驱动程序信息->在阅读了您建议的线程后,请参阅,似乎打印程序就是我想要的,我将做进一步的研究。自NT4以来,打印子系统中没有内核模式组件。您需要的是端口监视器,而不是打印处理器。虽然你可以用一个打印处理器来完成,但这是很难做到的。只需预先警告,版本4打印驱动程序Windows 8仅不支持自定义端口监视器。还有许多商业产品可以将打印作业保存为PDF格式。