关于WinCE打印,终于忍不住要发话了!

tomlance 2010-08-18 11:18:38
WinCE5.0程序,VC++2005 开发环境,小弟只想获取默认的打印机来打印。找了无数篇文章,都是说
::CreateDC(打印机驱动名,NULL,NULL,NULL);之类,但这个打印机驱动名怎么来却没有描述。大牛们你的这一点点省略给菜鸟造成无限的烦恼啊!

也有找到PRINTDLG pd;AfxGetApp()->GetPrinterDeviceDefaults(&pd);可是因为GetPrinterDeviceDefaults为无法解析的外部符号而编译不通过,也搜索了无数次就是不知道依赖那个lib文件。

折磨小菜太甚了。。。。

哪个牛人帮忙解决一下这个难言之隐,顺便教我设置横向打印, 100分奉上
...全文
895 30 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
guangliny 2011-12-12
  • 打赏
  • 举报
回复
关注中,正需要这个,看来没有正解,等待啊。。。
puyoupuyou90 2010-08-26
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 aaa_tnt 的回复:]
引用 21 楼 puyoupuyou 的回复:
我更无奈 再做热敏打印机的驱动 字符->图片->点阵的转换可是没法整了 用了一个GetBitmapBits wince6不支持 换个一个GetDIBits wince6也不支持。。。 真想知道ms是怎么做的图像转换的

GetPixel
[/Quote]
GetPiexl效率太低了,对于一个较大的图像来说就是噩梦。。。
用GetObject也得不到想要的数据,如果说我有HBITMAP的句柄,是不是这个句柄就是指向图像地址的指针呢,那么这块内存是在memDC中的么?
看来缺少理论知识就是不行呀~
shellgo 2010-08-25
  • 打赏
  • 举报
回复
楼主啊,搞定打印了吗?
xygh2006 2010-08-25
  • 打赏
  • 举报
回复
都是些大侠,我是来学习的
xiao_rq 2010-08-24
  • 打赏
  • 举报
回复
学习了,楼主不错!
tomlance 2010-08-23
  • 打赏
  • 举报
回复
虽然结贴了,但还是为没有稍微耐心一点的大虾的出现感到有一丝遗憾。经过我的了解,WinCE只对一些使用PCL语言的打印机支持。也就是说如果在PB定制的时候选择了PCL打印支持的相关组件,那么应用程序在使用PCL打印机时可以不用自己开发驱动程序。我下面给出WinCE使用PCL打印机的一个简单的例子(还没有测试,打算买PCL打印机后测试),希望和有和我一样的烦恼的同行有一点帮助。
DEVMODE *pDM = new DEVMODE;
::memset(pDM,0,sizeof(DEVMODE));
pDM->dmSize = sizeof(DEVMODE);
pDM->dmOrientation = DMORIENT_LANDSCAPE;//横向打印
pDM->dmPrintQuality = DMRES_HIGH;
pDM->dmPaperSize = DMPAPER_A4;
HDC hdc = ::CreateDC( "pcl.dll", 系统检测到的打印机的名字, "LPT1"/*使用USB接口1,如果实用接口2则是LPT2*/, pDM );//Switch between LPT1 and LPT2 depending on which USB-Port you connect the printer

创建了hdc,接下来就可以以Windows GDI的方式来打印了
puyoupuyou90 2010-08-23
  • 打赏
  • 举报
回复
我更无奈 再做热敏打印机的驱动 字符->图片->点阵的转换可是没法整了 用了一个GetBitmapBits wince6不支持 换个一个GetDIBits wince6也不支持。。。 真想知道ms是怎么做的图像转换的
Ei 2010-08-23
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 puyoupuyou 的回复:]
我更无奈 再做热敏打印机的驱动 字符->图片->点阵的转换可是没法整了 用了一个GetBitmapBits wince6不支持 换个一个GetDIBits wince6也不支持。。。 真想知道ms是怎么做的图像转换的
[/Quote]
GetPixel
shellgo 2010-08-23
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 puyoupuyou 的回复:]

我更无奈 再做热敏打印机的驱动 字符->图片->点阵的转换可是没法整了 用了一个GetBitmapBits wince6不支持 换个一个GetDIBits wince6也不支持。。。 真想知道ms是怎么做的图像转换的
[/Quote]
这个兄弟,能否交流下打印机驱动,qq:4470509
tomlance 2010-08-21
  • 打赏
  • 举报
回复
如果EnumPrinters在CE下面能用,我也不至于这么烦恼了。多谢楼上的兄弟提醒- -
winceARM 2010-08-20
  • 打赏
  • 举报
回复
首先你要知道你的BSP有没有实现打印机驱动,如果有,第一个参数为打印机驱动名(XXX.DLL),第二个参数忽略,第三个参数打印机端口名(LPTx)—————————个人见解
shellgo 2010-08-20
  • 打赏
  • 举报
回复
哥们,能不能吧你的测试程序发出来啊,最近也在研究打印机,
shellgo@126.com
谢谢啊
tomlance 2010-08-20
  • 打赏
  • 举报
回复
横向打印我自己研究出来了,在CreateDC的第四个参数,DEVMODEW里面有dmOrientation

差一点了,你们就帮我完成第一个参数吧,拜托了。 我就是想达到换不同的打印机,程序也不需要用户手动干预,自动就能打印的效果。所以拜托你们别问打印机是什么型号了,那是你们开发底层驱动的大牛们的工作,小弟只是表层的应用。
tomlance 2010-08-20
  • 打赏
  • 举报
回复
都说了在操作系统的封装gdi接口下,对打印机的品牌型号那些不关心的。 封装的工作是操作系统和驱动程序共同完成,我就是一个傻瓜式的用户,不关心那些
harkspan 2010-08-20
  • 打赏
  • 举报
回复
没有那打印机的相关资料么?再不行找那打印机的厂家问下
asideu 2010-08-20
  • 打赏
  • 举报
回复
不知道名字 你可以枚举打印机的
http://faq.csdn.net/read/200896.html
tomlance 2010-08-20
  • 打赏
  • 举报
回复
还没有解决,继续顶一顶
tomlance 2010-08-20
  • 打赏
  • 举报
回复
COM的格式我知道,打印机那个名字格式不清楚,我想尝试EnumPrinter,可是又没有这样的函数
tomlance 2010-08-19
  • 打赏
  • 举报
回复
唯一的办法是自己顶上去
harkspan 2010-08-19
  • 打赏
  • 举报
回复
默认的打印机?啥意思?查了下,不知道楼主有没Google
http://blog.csdn.net/tayosoft/archive/2007/07/12/1686160.aspx
楼主是使用的什么接口的打印机?
如果是USB接口,你需要找到这款打印机的USB驱动(针对wince的);参考下:
http://www.fish888.com/WINCE-t142976
具体驱动应该找产家拿吧
如果是并口,你需要扩展一个并口接口,并做好对应的并口的驱动;
如果是串口接口,驱动就不用做了,直接对串口进行操作,然后满足对方提出来的协议即可
我上次弄的一个是串口的,直接发串口命令就行,其它几点是看别人说的,具体也不了解,顺便贴出来
还有GetPrinterDeviceDefaults是Windows的函数吧,WinCE下可能没有实现
加载更多回复(6)

19,519

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧