编写Windows打印机驱动程序

时间:2009-03-16 06:55:58

标签: driver printing

我想用C ++或C#编写一个应用程序,它在安装时会充当打印机驱动程序。它将出现在“打印”对话框的下拉列表中,但不是打印它将调用我的代码。

我认为Windows可能会提供一些用于编写打印机驱动程序的接口。

2 个答案:

答案 0 :(得分:21)

Windows提供大量接口。你知道你想写什么样的打印机驱动程序吗?目前,Windows支持三种打印机驱动程序 - PostScript,Unidrv和XPSDrv(后者在XP / 2003 Server上只有EP 1.0及以上版本)。大多数情况下,编写驱动程序插件就足够了。阅读INF架构,了解这些内容是否已安装,特别是关于迷你驱动程序的部分。

根据建议,您需要WDK才能构建驱动程序或其插件。请注意,驱动程序不使用Visual Studio IDE或编译器。 WDK附带了自己的编译器。你总是可以用VS来联系后者,但这是一个不同的故事。

WDK设置针对不同的操作系统。您必须知道要解决的操作系统(或操作系统集)并选择适当的设置。

  

我想写一个简单的驱动程序,它将显示在打印机列表中。

我不知道这会有什么帮助。如果您正在编写驱动程序,为什么还需要系统中存在的所有其他驱动程序的列表?

  

打印到此驱动程序将调用我的代码,以便我可以执行诸如创建文档的PDF,调用Web服务等内容。

有趣!您可以在UI插件中实现所有这些功能。 UI插件是在您选择Advanced驱动程序属性时加载的dll。

要开始使用UI插件,请查看WDK中的示例oemui源代码。

答案 1 :(得分:-1)

我不确定它是否会显示在列表中,但我从未尝试过这个C ++代码:

#include <fstream>
Namespace Drivers{
Class Printer{
Const IOStream Printer("PRN");
Void Send(char a[]){
Printer<<a;}
Char GetStatus[](){
Char a[];
Printer>>a; 
return a;
 };
 }