如何构建虚拟打印机?

Sol*_*ong 5 driver printers virtual-printer

我正在尝试构建一个虚拟打印机.已有一些像这样这样的答案.

但是我的要求更具体.我只想创建一个可以添加到系统中的虚拟打印机,并且可以从任何应用程序访问.单击打印命令时,会弹出一个对话框,显示真实的打印机,并在打印时生成PDF.然后执行一些更多操作,例如将PDF推送到我的服务器.

我是否需要深入了解Windows驱动程序工具包?或者有免费的SDK吗?

谢谢.

And*_*ndy 6

不知道这个问题是否仍然与您有关,但您可能想考虑以下问题:

使用WDK(Windows驱动程序工具包)创建Unidrv UI插件。这将允许您在打印过程中指定UI(用于打印机对话框)。之所以要在此处显示UI,是因为它是在用户会话中运行的唯一打印机驱动程序组件之一(与打印应用程序相同的过程)。XPS管道和端口监视器都是会话0。

如果您要遵循MS约定,请在XPS筛选器管道的渲染过滤器中进行假脱机文件到PDF的转换(如果您使用的是XPSDrv驱动程序)。您可以在过滤器管道中修改传入的XPS假脱机数据,并在最终过滤器中将其转换为输出文档类型(以您的情况为PDF)。

要进行后期打印处理,您可能要考虑创建端口监视器(与WDK相同),并在端口监视器将打印输出写出到磁盘后启动一个新的过程来进行后期打印处理。

这种方法的唯一问题是您不能在版本4驱动程序中使用端口监视器(这是Windows 8中的新型驱动程序)。版本3驱动程序仍然可以在Win 8中使用,但我想它们最终会被淘汰。

抱歉,它可能不是很明显,但是正如我所说的,它是一个高层次的概述(不幸的是,驱动程序的开发仍然非常复杂,只需要简单地打印即可)。版本4打印机驱动程序的开发变得越来越容易,但是不幸的是,由于取消了对端口监视器的支持和其他改进,这使得开发任何需要后处理的东西变得更加困难。

[免责声明:我与Mako SDK研发团队有联系]
我知道您要求免费的SDK,很遗憾,我不知道有什么合适的东西,但是我知道我们公司提供了一个虚拟打印机平台(SDK),会对您有好处(打印为PDF并支持后期打印处理)。您可以在Mako SDK网站上找到更多信息

希望这对您有所帮助。我知道打印机驱动程序的开发有时会很混乱!