2012-06-08 73 views
1

我是Windows开发新手,我试图编写用户模式窗口(XP,Vista & 7)虚拟打印机驱动程序。我的目标是拦截由第三方应用程序发送到硬件打印机的输出,并在输出结尾添加一些额外的数据(文本+图形)到该输出。然后发送最终的有效载荷,由硬件打印机打印。请注意,我的数据不会被添加到机器的每个打印输出中,而仅仅是来自特定的第三方应用程序。为Windows编写虚拟打印机驱动程序

我想在将其额外的数据转换为任何页面描述语言(PDL)之前将其添加到打印输出中。我可以这样做吗?我能否在预测的输出结尾添加我的额外数据以适当的格式?如果是的话,那么我需要写什么样的驱动程序以及什么样的layer of the architecture

有没有更好的方式来做同样的事情,然后编写用户模式的打印机驱动程序?

最后,有没有一个示例代码,在线博客或书籍,可以帮助我呢?

+0

可能重复的[如何在Windows中创建虚拟打印机?](http://stackoverflow.com/questions/1019036/how-to-create-a-virtual-printer-in-windows) –

+0

打算识别打印应用程序? –

+0

由于我打算编写打印机驱动程序,它将显示为应用程序选择打印的选项之一。所以当一个打印请求到达我的打印机驱动程序时,我会认为它来自特定的应用程序本身。 – mabicha

回答

1

我不认为你需要一个驱动程序。只需使用随WDK提供的标准Postscript驱动程序,添加.PPD和.INF文件以命名并指定特征,然后将代码放入端口监视器。端口监视器比打印驱动程序更易于构建和维护。

2

我认为最好让应用程序写入通用的Postscript驱动程序并对结果Postscript进行后处理,而不是试图理解写入打印机驱动程序的数据;有很好的开源工具可用于操作Postscript。

This page describes setting up a driver on Windows that will produce Postscript虽然除了将其发送到另一台打印机,您仍然希望使用Postscript做其他事情。

+0

感谢您的回复!其实我在通过你的[建议链接](http://www.stat.tamu.edu/~henrik/GSPSprinter/GSPSprinter.html)时有疑问。实际上,使用我的软件的人可能使用任何类型的页面描述语言(PDL),如ESC/PAGE(来自Epson),PCL,PostScript等打印机。所以我想知道所有这些打印机是否能够打印输出来自GhostScript ie预期文档的栅格化图像? – mabicha

+0

按照您的需要转换Postscript后,您可以通过Ghostscript打印机驱动程序发送它,该驱动程序将Postscript转换为打印机可接受的格式。 – antlersoft

相关问题