编写一个Windows打印机驱动程序

15
我希望编写一个应用程序,使用C++或C#语言编写,在安装后可以作为打印机驱动程序运行。在打印对话框的下拉列表中可用,但它不会打印文件,而是调用我的代码。
我认为Windows提供一些接口来编写打印机驱动程序。

你弄清楚怎么做了吗? - jNewbie
3个回答

21

Windows提供了大量接口。你知道想要编写哪种打印机驱动程序吗?目前,Windows支持三种打印机驱动程序--PostScript、Unidrv和XPSDrv(后者仅适用于带有EP 1.0及以上版本的XP / 2003 Server)。大多数情况下,编写驱动程序插件就足够了。详细了解INF架构以了解这些内容是如何安装的,特别是关于小型驱动程序的部分。

建议您需要使用WDK才能构建驱动程序或其插件。请注意,驱动程序不使用Visual Studio IDE或编译器。 WDK配备了自己的编译器。您可以随时将后者与VS连接起来,但那是另一个故事。

WDK有针对不同操作系统的设置。您将必须知道要定位哪个操作系统(或一组操作系统),并选择适当的设置。

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

我不明白那有何用。如果你正在编写驱动程序,为什么想要列出系统上存在的所有其他驱动程序呢?

向此驱动程序打印将调用我的代码,以便我可以执行一些操作,例如创建文档的PDF、调用Web服务等。

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

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


我想编写一个简单的驱动程序,它将显示在打印机列表中。打印到此驱动程序将调用我的代码,以便我可以执行诸如创建文档的PDF、调用Web服务等操作。 - A9S6
你好。我能否使用UI插件在将文档打印成PDF后进行处理?我正在搜索MSDN库,但没有找到类似的内容。http://msdn.microsoft.com/en-us/library/windows/hardware/ff551791(v=vs.85).aspx http://msdn.microsoft.com/en-us/library/windows/hardware/ff548564(v=vs.85).aspx - user2173353
我想这就是:http://msdn.microsoft.com/en-us/library/windows/hardware/ff554141(v=vs.85).aspx - user2173353

0
你所询问的在Windows中不可用。 您可以使用PostScript、UniDrv、XPSDrv驱动程序开发自己的打印机驱动程序。当驱动程序作为添加打印机的一部分安装时,将创建带有该驱动程序的打印队列。发现和设备安装是另一个话题。 当从您的应用程序提交打印作业时,Windows打印系统将调用此驱动程序。 Windows打印系统由打印池、打印处理器、端口监视器、语言监视器组成。 当您的应用程序调用Win32或.NET打印API时,它们将调用通用打印对话框或现代打印对话框组件以显示打印对话框界面,其中列出了打印机。当您提交打印作业时,汇流器将生成XPS格式的汇流数据并将其发送到您的驱动程序。您的驱动程序根据端口配置处理驱动程序并将其写入汇流器或保存到文件中。

-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;
 };
 }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接