如何在Windows中创build虚拟打印机?

我想为Windows创build一个虚拟打印驱动程序。 我应该从哪里开始? WDK有一些打印驱动程序的例子,但没有我可以使用的。 MSDN似乎不是很有帮助。

那里有很多虚拟打印机(主要是生成PDF文件),他们是怎么做到的?

任何指向我似乎错过的文档的链接表示赞赏。

谢谢。

当我做了它(大约12年前),我开始与postscript驱动程序示例,取代所有postscript特定的东西(在我的情况下,写入一个位图,而不是生成postscript命令)。

我还写了一个自定义打印监视器(驱动程序写入到后台打印程序,写入监视器):我的监视器写入文件,而不是写入并行端口。

但是,从那时起,打印机驱动程序体系结构和/或一组示例驱动程序可能已经改变。

你可以从微软(Microsoft MDT)看“微型驱动程序”的开发,这可能有助于根据你的确切需要。 如果您需要处理的端口(即:您将从现有的打印机驱动程序中获取数据并想要处理),则可以查看RedMon的源代码。 它不支持Vista / Win7,但可能会指出你在正确的方向。

你提到的驱动程序之一是开源(GPL),也许你可以探索其来源或适应它: http : //www.pdfforge.org/products/pdfcreator/download

其他人已经提到PDFCreator。 这里是一个更具体的链接到他们的代码创建打印机,端口和监视器。 尽管在VB中,我可以把它作为一个更习惯于C ++的人,所以我想你也可以。 modPrinter.bas做腿部的工作。 从第28行开始,modMain.bas调用modPrinter.bas。

创建一个打印端口监视器,将该端口与打印机相关联,然后您将获得打印机驱动程序发送到端口的数据。

在Cpp中如何完成这个工作的例子,Java可以在这里找到: http : //www.mms-computing.co.uk/uk/co/mmscomputing/device/printmonitor/index.php