首页
社区
课程
招聘
[求助]如何截获一个打印任务里的完整数据
发表于: 2009-10-13 19:30 4728

[求助]如何截获一个打印任务里的完整数据

2009-10-13 19:30
4728
问题描述如下:
一张很小的图片,一张A4的纸张装的下,于是在一张A4的纸张里就能够完全的打印和显示出来.
一张很大的图片,打印预缆程序就会把其分成几张A4的纸上.但是这时候你就取不到完整的一张图片了.因为其分成了几张A4的纸.

我尝试过以下几种方法:
1.用虚拟打印驱动输出bmp后,我裁减边缘,最后组合.根据我的测试,其边缘的偏移,每张图片都不一样.所以最后也没办法还原原来的图片.
2.我取DC,然后在内存里copy View的内容,直接取整张图片.比如说下流程
FindWindow
GetWindowDC
....
失败了,因为取的只是显示出来的窗口那些内容,比如说窗口如果有滚动条,滚动条的下边显示不出来.
3.直接在虚拟打印程序内部截获数据.我实际上对虚拟打印程序一点都不熟,于是在网上找了份代码,dbg print了下,看哪里能看到完整的图形数据. 其主要用IPrintOemUni 这个接口实现.
查SDK之,觉得最有可能取的数据的函数为ImageProcessing,我就去那编了个.惊奇的发现那里其实也是不对的.
于是我发狂般的在N个地方加了trace(dbg print),几乎所有的函数.
所以,我也很清晰的观察出了该驱动的工作流程.但是我发现居然没有一个地方,可以完整而又轻松的取出view上的图.
以画图程序为例子,我在上边画了一张3000*4000的bmp,我如何才能在打印里还原出这张3000*4000的图.

谢谢各位领导.

[招生]系统0day安全班,企业级设备固件漏洞挖掘,Linux平台漏洞挖掘!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//