打印机驱动的模式问题 看到别人说的 记录一下 感觉还是很有启发的

想弄出每页的图片的话,大概有三个办法:

投机取巧的办法,属于野路子的,用GPD去定制unidrv.dll,生成一个实际上无任何用的打印机驱动(当然你可以把自己的printer processor附加到别的已安装的打印机驱动上去),这个驱动就是配合安装print processor,让windows可以通过它去产生脱机文件(光有printer processor是无法让windows生成spool文件的);再修改genprint,在里面解析spool file拿到每页的EMF图片,EMF图片是矢量图,体积小,适合在任何显示设备上回放,不过这样因为那个GPD打印机驱动是个样子货,记得windows偶尔会弹出文件无法打印之类的提示。这个代码量最小。

第二个办法,如果只要JPG/BMP之类的,记得可以通过编写Unidrv rendering plugin(例子大概是在ddk的oemui目录),抓取surface内容保存为JPG来实现,不过记得因为surface上的是一副位图,所以你无法保存成矢量图了,而且在不同的设备上回放效果可能有区别;

第三个办法,也是最复杂最正规但是功能最强大的,就是自己从头实现一个printer graphic dll,不借助unidrv,自己实现所有的GRE/DDI接口,不过这里你不需要做太复杂的操作,就是记录下GRE的每个回放动作,保存为自己定义的格式的文件,这个文件虽然记录了一系列的GDI操作,但是显然windows是不认的,所以你要再提供一套库函数,去解析回放每个动作。这个办法的好处是你可以(1)拿到另外一台windows机器上回放每一页效果不会有差别,因为本质上你保存的是GDI操作(2)你可以在回放的同时做页面操作如加水印合并页面等然后再输出到物理打印机(3)兼容性最好,缺点是代码量比较大,要花一点时间去熟悉DDI和printer graphic dll的结构。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
P1007打印机驱动是用于控制和操作HP LaserJet P1007打印机的软件。打印机驱动程序是作为连接计算机和打印机之间的桥梁的一种软件。它允许计算机向打印机发送指令,并确保打印机能够正确执行打印任务。 P1007打印机驱动的作用是将计算机系统的指令转化为打印机能够理解和执行的指令。通过安装并正确配置打印机驱动程序,用户可以通过计算机发送打印任务,并能够控制打印机的参数,如打印质量、纸张尺寸、打印方向等。 安装P1007打印机驱动需要以下步骤: 1. 下载P1007打印机驱动程序。可以从HP官方网站或其他可信资源获取驱动程序的安装文件。 2. 运行下载的驱动程序安装文件。按照安装向导的指示,选择安装目录和其他设置。 3. 连接P1007打印机到计算机。确保打印机正常开启并与计算机通过USB线缆连接。 4. 完成驱动程序的安装。安装程序会自动检测并安装所需的驱动程序文件。 5. 重新启动计算机。有时,在安装打印机驱动程序后需要重新启动计算机才能使驱动程序生效。 完成这些步骤后,P1007打印机驱动程序就已经成功安装在计算机上了。用户可以在打印任务中选择P1007打印机,并通过打印软件发送文件进行打印。同时,用户还可以通过打印机设置界面或系统打印机设置来更改打印机的参数和选项。 总而言之,P1007打印机驱动是连接计算机和打印机之间的软件桥梁,它允许用户通过计算机发送打印任务并控制打印机的参数。安装P1007打印机驱动需要遵循一定的步骤,以确保驱动程序能够正确安装并与打印机正常工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值