leaving
驱动牛犊
驱动牛犊
  • 注册日期2005-08-01
  • 最后登录2007-08-15
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望12点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
阅读:2361回复:5

打印机驱动中光栅数数据是如何处理的?

楼主#
更多 发布于:2007-01-31 17:49
  在CmdSendBlockData这个命令应该处理什么东西?
光栅数据是什么格式的?
knight_temp
驱动牛犊
驱动牛犊
  • 注册日期2002-07-30
  • 最后登录2011-05-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望13点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-02-02 11:30
CmdSendBlockData这个命令这个命令我也不太清楚,所以不知道。
但是光栅数据我知道,首先一般光栅数据是打印机或印刷机可直接打印出来或印出来的数据。
他是打印头,印刷单元直接使用的,所以没有一个通用的格式,但一般来讲主要分有几个实际印刷
颜色,单色的只有黑(K)色,彩色的分C、M、Y、K四色,其次是BIT深度,具体说就是具体打印头
每个点分几级灰度,这主要在打印机上使用,印刷上每个印刷点决大多数为1位bit。
光栅数据主要由RIP产生,RIP主要是将计算机存储的印刷数据转换成印刷机可以识别的格式的工具。
传统的打印及印刷设备这个RIP过程主要由硬件来实现,现在出现了GDI打印机,而GDI打印机的RIP
功能是在PC上完成的,硬件只负责打印数据,不再负责数据处理。
至于你非要知道光栅数据是什么格式,那么你需要说明你的印刷(打印设备)的具体情况,才能知道。
每种设备由于最终硬件的不同,数据格式也是不同的。
leaving
驱动牛犊
驱动牛犊
  • 注册日期2005-08-01
  • 最后登录2007-08-15
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望12点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-02-03 11:08
感谢楼上的兄弟!
我现在的这个打印机用 一个 bit 为1表示有点, 0表示无点, 也就是说一个字节可以表示水平方向的 8 个点
我用一个word打印一个居中的黑块, 原本左边应该有空白的,
结果打印出来之后左边的空白不在光栅数据里面(我打印到文件里察看的)
还有一个问题还是关于 *CmdSendBlockData 的, CommandCallback 函数接收到的数据很奇怪,
RasterDataWidthInBytes x RasterDataHeightInPixels 不等于 NumOfDataBytes 为什么?
leaving
驱动牛犊
驱动牛犊
  • 注册日期2005-08-01
  • 最后登录2007-08-15
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望12点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-02-03 15:45
找到原因了 *OptimizeLeftBound? 属性如果置TRUE, 调用 CmdSendBlockData 发送的光栅数据就已经是没有左边空白了的...
knight_temp
驱动牛犊
驱动牛犊
  • 注册日期2002-07-30
  • 最后登录2011-05-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望13点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-02-05 13:32
兄弟,你做的是虚拟驱动还是真实的打印机设备驱动啊?
dlzzl
驱动牛犊
驱动牛犊
  • 注册日期2007-03-04
  • 最后登录2007-03-05
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望6点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-03-04 17:27
寻设备驱动程序开发高手,

我有一台设备(类似打印机),需要开发驱动程序,要求该程序通过专业打印软件,及专用PCI卡,控制该设备,
能开发的请与联系,限杭州或上海工程师,有意者QQ:43771954 13336106912 占先生联系
游客

返回顶部