您所需要的不是打印机驱动程序.一个命名为打印监视器.它是一个DLL,将在Spooler.exe进程中加载.该DLL在初始化阶段给予假脱机程序一个逻辑名称的端口,如LPT1:,FILE :,SPSPort等.使用打印机驱动程序准备的optput必须以任何方式发送到目标设备.此工作会打印像“标准TCP / IP端口”或“本地端口”的显示器.
要编写打印机监视器,您需要下载并安装Windows驱动程序工具包(WDK或之前的DDK,请参阅http://www.microsoft.com/whdc/devtools/WDK/default.mspx).有关编写打印机监视器的更多信息,请参阅http://msdn.microsoft.com/en-us/library/ff563806(v=VS.85).aspx.打印监视器是具有某些导出功能的DLL(参见http://msdn.microsoft.com/en-us/library/ff549405(v=VS.85).aspx).我推荐你开始修改本地监视器示例LocalMon在安装WDK之后找到的完整的源代码sode(见http://msdn.microsoft.com/en-us/library/ff556478(v=VS.85).aspx).
编写打印机监视器最实际的问题是编写一个真正的多线程DLL的要求.您必须非常小心,理解并使用所有函数中的EnterCriticalSection.对于打印机监视器的调试,您应该将Visual Studio Debugger连接到进程假脱机程序.其余的就像写入一个标准Windows Win32 / Win64 DLL一样.
更新:再说一句.如果您不希望打印机驱动程序对发送到打印机的数据执行任何操作,则可以使用通用打印机驱动程序.您将在“Generic”制造商下找到“打印机”,名称为“Generic / Text Only”.检查您的某些驱动程序设置(如CR LF设置)