随笔 - 3  文章 - 8  trackbacks - 0
<2009年11月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

常用链接

留言簿(3)

随笔档案

文章分类

文章档案

COM相关技术

搜索

  •  

最新评论

阅读排行榜

评论排行榜

例子下载 该例子让原来每个文档存为一个BMP改为每页存一个BMP,因为是测试用的代码,所以D盘下的AAA目录你得自已建。





照旧,先把相关连接给补上:
oemdll -- bitmap -- oemui -- oemuni
OEMEndDoc
http://topic.csdn.net/t/20050908/16/4257820.html

http://bbs.driverdevelop.com/htm_data/71/0401/58415.html

http://bbs.driverdevelop.com/htm_data/71/0811/114349.html

http://www.osronline.com/ddkx/graphics/grstrcts_3rtz.htm


首先,得了解我目前掌握先什么资源:
1>有一个声称能够把打印输出成BMP的例子.

问题:
0>BMP文件保存在哪里?
1>我如何确定什么时候一页已经处理完了?
2>我如何知道这一页是属于哪一个文档的?
3>有些机器上会出现错误--正在打印是怎么回事?

目标:
把打印的每个文档保存为一个目录,文档中的每页保存一个BMP图片.


---------未完,待续.

posted on 2009-01-07 15:53 鹿哥 阅读(2623) 评论(3)  编辑 收藏 引用

FeedBack:
# re: 虚拟打印实现方案二(ddk sample oemdll bitmap ) 2009-03-17 14:32 shengws
正好看到,顺便给你解答下问题:直接上CODE
1、OEMNextBand中
//if the page end?
if(bRet && (pptl->x == -1L && pptl->y == -1L))
{
OutputDebugString(_T("OEMNextBand::nextband create image file"));

CreateIMGFile(pDevObj);

2、OEMStartDoc 中
if(dwJobId>0)
{
JOB_INFO_2 *pJobinfo = NULL;
DWORD dwNeeded;

GetJob(pDevObj->hPrinter, dwJobId, 2, NULL, 0, &dwNeeded);
pJobinfo=(JOB_INFO_2 *)malloc(dwNeeded);
memset(pJobinfo, 0, dwNeeded);
GetJob(pDevObj->hPrinter, dwJobId, 2, (LPBYTE)pJobinfo, dwNeeded, &dwNeeded);
delete pJobinfo;

//document name
TCHAR szTempDir[MAX_PATH] = {0};
_stprintf(szTempDir, _T("%s"), pJobinfo->pDocument);

3、这个错误,肯定是你的打印正在PENDING。可以重启打印服务来结束掉它。
NET STOP SPOOLER
NET START SPOOLER  回复  更多评论
  
# re: 虚拟打印实现方案二(ddk sample oemdll bitmap ) 2009-11-09 15:20 hmyancauc
你提供的例子怎么运行不了啊?每次都提示出错信息: error PRJ0002 : 错误的结果 1 (从“C:\WINDOWS\system32\cmd.exe”返回)  回复  更多评论
  
# re: 虚拟打印实现方案二(ddk sample oemdll bitmap ) 2009-12-24 14:35 ccv
编译不过~~~vs和wdk的build命令都不行,能不能修复一下。  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理