声明:非用于获取他人信息,软件用于公共行业合法用途。
目的:截取打印机内容并保存为图片遇到的难点:
无法获取到数据内容(内容存为图片网上貌视代码不少,可能不会有太大问题)1.查了网上相关的,有人说读取.spl文件,但是有的驱动不生成这个文件,还有好多驱动生成的该文件大小等于 0. 另获取该文件需要HOOK什么API吗?(不想做成在驱动属性上选中保留.spl的样子)
2.另外自己乱HOOK了一下 EndDocPrinter并用messageBox断住,然后另外一个程序去枚举打印机,使用ReadPrinter读取内容的时候总是失败。请高手指点一下怎么实现这个功能。不要串口和驱动层的。万分感激!
目的:截取打印机内容并保存为图片遇到的难点:
无法获取到数据内容(内容存为图片网上貌视代码不少,可能不会有太大问题)1.查了网上相关的,有人说读取.spl文件,但是有的驱动不生成这个文件,还有好多驱动生成的该文件大小等于 0. 另获取该文件需要HOOK什么API吗?(不想做成在驱动属性上选中保留.spl的样子)
2.另外自己乱HOOK了一下 EndDocPrinter并用messageBox断住,然后另外一个程序去枚举打印机,使用ReadPrinter读取内容的时候总是失败。请高手指点一下怎么实现这个功能。不要串口和驱动层的。万分感激!
解决方案 »
- 下面树结构的单击与双击消息对吗?
- 怎样更改vs里宏路径的默认值
- C++生成的Lib和Dll名字不同,导入NaviLog.lib,找不到NaviLog.dll,怎么解决?
- 使用glutSwapBuffers()程序不能start debugging
- 如何释放socket的系统缓存
- CListCtrl 插入多行,闪烁问题如何解决?
- 请教各位关于VC数据库中存储Access中的“日期/时间”字段的问题.给分100
- 本人学习数字图像处理,想问问在这个论坛里有这方面内容吗?
- 一个睡觉唤醒的问题
- _RecordsetPtr记录集的取值问题?
- 求助 使用OCI连接不上 错误为 ora-24327
- 计算机唯一标识符
试试能不能从它的第一个参数的HDC中取到
弄了一下午得到一点测试结果:经过测试 对于少量虚拟打印机驱动能使用ReadPrinter读取到WMF头,里面应该有数据信息了。
但是大部分都读取失败。
http://bbs.csdn.net/topics/390423628
该帖无人顶,没法结贴但是获取的都是RAW格式的,很少有生成EMF格式的,EMF格式的容易处理,但是RAW格式的好像无解呀。
对于WPF类型的程序 打印的时候走XPS流程,也就是不使用GDI打印了,上层驱动也无法获取内容。
这个东西没做出来,基本到此为止吧,以后有空或者有线索了再继续。
希望能对某些人产生帮助。
更希望高手们空了来此贴指导一下。
或者有对这方面有兴趣的朋友共同研究
Raw数据可以直接打印或转成SPOOL文件。Raw格式的SPOOL文件是和设备相关的。
EMF:Enhanced metafiles用于大大缩减应用程序从开始打印请求到OS将控制返回给应用程序。该格式的好处是能快速生成SPOOL文件 但是没搜索到别的相关的信息。楼上的知道怎么弄吗?我对图像处理 DC等不大熟悉。
网上有转换格式,,你找下