wince如何支持打印?

cang_er03 2009-09-12 09:23:03
我编写了一个基于Windows ce的应用程序,其中要求能支持打印。要想实现,需要做哪些工作?请指教。
开发板使用的是ICOP的VDX6354,是支持打印的。
但是我将打印机插上(通过usb,并且是hp打印机)以后,系统没有自动显示新添加的打印机。
这是什么问题?应该如何解决?
...全文
114 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuyan0120 2009-09-21
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 sunrain_hjb 的回复:]
建议楼主添加相关几个组件试试看,运气好,也许直接就可以用。

很早以前,我在WinCE5.0上用过HP的一款打印机,USB接口的,没添加额外的驱动。
[/Quote]
看到希望了
cang_er03 2009-09-21
  • 打赏
  • 举报
回复
以下是我在微软的Windows CE论坛下求助所得到的答复:
CE下就是比较麻烦 没有驱动 如果小的数据 通过串口可以用软件实现 都是数据多了就不好做了 必须有驱动 不然根本打印一页会慢的让你受不了
wliaoc 2009-09-15
  • 打赏
  • 举报
回复
关注中,想知道解决办法
sunrain_hjb 2009-09-14
  • 打赏
  • 举报
回复
建议楼主添加相关几个组件试试看,运气好,也许直接就可以用。

很早以前,我在WinCE5.0上用过HP的一款打印机,USB接口的,没添加额外的驱动。
cang_er03 2009-09-14
  • 打赏
  • 举报
回复
如果开发的嵌入式设备是销售给其他客户的,那怎么办?
难道针对每个客户的打印机写驱动,还是建议客户去买某某型号的打印机才可以?
不太现实啊,应用起来很不方便。
cang_er03 2009-09-14
  • 打赏
  • 举报
回复
OMG!期待大家热烈讨论,各抒己见!
congyue123 2009-09-13
  • 打赏
  • 举报
回复
我也在关注中。。。。。。。
期待。。。。

我知道有PCL语言的,惠普的应该都是PCL的,CE下面有个PCL的例子,具体就不清楚了。
churenxh 2009-09-13
  • 打赏
  • 举报
回复
也很想知道
gooogleman 2009-09-13
  • 打赏
  • 举报
回复
这个东西很感兴趣,当时很多人问,但是都没有好的答案,现在继续期待高人出来解答。
91program 2009-09-13
  • 打赏
  • 举报
回复
当然,如果官方不提供驱动,只能自己开发

前提是官方提供Spec,否则无法开发的
cang_er03 2009-09-12
  • 打赏
  • 举报
回复
刚查了一下,我使用的打印机是hp laserjet1022,官方的驱动下载只有for xp和vista的,也就是说它不支持wince?要想支持就得自己写驱动?
PCL语言能够进一步提高打印质量,通常在中高端打印机产品中才会出现,是决定打印机输出复杂版面能力的重要指标。 PCL语言 正是Adobe公司的对PostScript语言的收费方式,给HP公司的PCL( Printer CommandLanguage,打印机控制语言)语言提供了发展空间,PCL语言是HP公司于70年代针对其打印机产品推出的一种打印机页面描述语言。HP公司的市场策略与Adobe完全不同,其他厂商可以在他们的打印机产品中自由模仿或使用PCL语言。正是PCL语言的开放性,降低了使用PCL语言的打印机产品的成本,从而使其在打印机产品中的普及程度远远高于PostScript语言。 PCL语言最初也是为点阵打印机设计的,PCL3是第一个得到广泛应用的版本,但它只支持一些简单的打印任务。PCL4虽然还只能应用在个人打印机中,但增加了对图形打印支持,但由于解释工作比较简单,PCL4比后期的PCL5和PCL6对打印控制器的要求要低很多。 PCL5是HP公司为它的激光打印机LaserJetⅢ设计的,它提供了一些与PostScript语言相似的功能,开始支持矢量字库和矢量图形描述,实现了WYSIWYG(What You See Is What You Get, 所见即所得),PCL5中也使用了各种压缩技术来减小数据量,加快数据传输。 PCL5e开始支持双向数据通讯,从而使打印机可以向计算机发送打印机的状态信息。PCL5c增加了对彩色打印支持。 1996年HP公司发布了PCL6,它更加灵活,是一个目标朝向的控制语言,使处理多图形的文件的速度大大加快,实现了更好的WYSIWYG,可以更好地处理Web页面。 两种语言的比较 1.PostScript和PCL两者的工作流程都是首先在计算机的一端将打印内容解释成标准的页面描述文件,这种文件可以被所有采用这种语言的打印机所识别,传送到打印机的核心——控制器中,然后在打印机控制器中将页面描述文件解释成可以打印的图像。从工作流程的角度看,采用这两种语言的打印方式对打印机的“大脑”要求较高,需要打印机能够自己独立处理转换的任务,并且需要打印机本身有足够的内存。 2.PostScript和PCL都具备了标准化和与设备无关性的优势,对计算机系统资源占用也较少,两种语言的高版本还提高了对字库、图形和图像的解释能力,对于提供了高打印质量的产品,大都采用了此两类语言。但相对来说,由于对打印机核心部分——打印控制器性能的要求较高,一定程度会增加机器成本,尤其是PostScript对打印控制器的性能更高。 3.经过对多款使用PCL语言和PostScript语言的黑白和彩色激光打印机进行测试。发现,使用PCL语言的打印机在处理文本或一些常见办公应用软件下的文档时具有非常明显的速度优势,在这些应用下,在打印质量方面与使用PostScript语言的打印机也没有差距。使用PostScript语言的打印机在常见办公应用下的打印速度要慢一些,但在处理PDF文件或在Photoshop等软件下打印大的图形图像文件时具有一定的速度优势,同时其在图形表现准确度、色彩表现准确度和一些字库表现准确度方面也比PCL语言有优势。所以PCL语言比较适合一些普通的商务办公应用,而PostScript语言更加适合对图形和色彩准确度要求比较高的专业应用。这也是目前许多打印机产品同时提供PCL和PostScript两个版本的驱动的一个重要原因。 其他相关 其他要说的一点是关于选配打印语言的问题,打印语言有标配和选配两种:所谓标配是把打印语言解释成一段程序,加载在打印机主控芯片程序里面,从主机过来的打印语言格式数据流直接在此芯片中解释成机芯所能识别和控制的视频数据。而选配则是把打印语言解释器做成了一个相对独立的硬件,插于打印机控制器中预留的解释器插槽中。相对于标配,选配的数据读取速度较慢,数据精确度较低。厂商采取选配打印语言的策略就是为了降低打印机的成本,一般的用户用其自带的打印语言就可以完成相应的工作了,但如果有用户需要其的打印语言,那选购打印语言模块后直接插在打印机上就可以了。
日志输出操作,支持WinCe及Win32平台:功能强大,代码简洁 // 摘要: // 日志输出操作,支持WinCe及Win32平台。 [Serializable] [System.Runtime.InteropServices.ComVisible(true)] public class Log4net { private string[] logLevelText = new string[] { "TRACE", "INFO", "WARN", "ERROR", "FATAL", "NONE", }; // // 摘要: // 日志文件操作类。 // // 参数: // filepath: // 日志文件名,全路径文件名称。 public Log4net(string filepath) { } ~Log4net() { } #region ------Property------ // // 摘要: // 获取或设置当前日志的最低水平。 // // 返回结果: // FENIO.LOG_LEVEL,表示当前日志输出的最低水平,低于当前水平的日志不再输出。 public LOG_LEVEL LogLevel { } #endregion #region ------ Public ------ // // 摘要: // 初始化日志文件,根据指定文件的大小备份日志文件。 // // 参数: // fileSize: // 日志文件大小,单位:KB。 public bool Initilize(long fileSize) { } // 摘要: // 释放由 FENIO.Log4net 使用的所有资源。 public void Dispose() { } // // 摘要: // 输出日志,级别LOG_NONE // // 参数: // logFormat: // System.String,包含零个或多个格式项。 // argLog: // 包含零个或多个要格式化的对象的 System.Object 数组。 public void WriteLog(string logFormat, params object[] argLog) { } // // 摘要: // 输出日志,级别LOG_TRACE // // 参数: // logFormat: // System.String,包含零个或多个格式项。 // argLog: // 包含零个或多个要格式化的对象的 System.Object 数组。 public void WriteTrace(string logFormat, params object[] argLog) { } // // 摘要: // 输出日志,级别LOG_INFO // // 参数: // logFormat: // System.String,包含零个或多个格式项。 // argLog: // 包含零个或多个要格式化的对象的 System.Object 数组。 public void WriteInfo(string logFormat, params object[] argLog) { } // // 摘要: // 输出日志,级别LOG_WARNING // // 参数: // logFormat: // System.String,包含零个或多个格式项。 // argLog: // 包含零个或多个要格式化的对象的 System.Object 数组。 public void WriteWarning(string logFormat, params object[] argLog) { } // // 摘要: // 输出日志,级别LOG_ERROR // // 参数: // logFormat: // System.String,包含零个或多个格式项。 // argLog: // 包含零个或多个要格式化的对象的 System.Object 数组。 public void WriteError(string logFormat, params object[] argLog) { } // // 摘要: // 输出日志,级别LOG_FATAL // // 参数: // logFormat: // System.String,包含零个或多个格式项。 // argLog: // 包含零个或多个要格式化的对象的 System.Object 数组。 public void WriteFatal(string logFormat, params object[] argLog) { } // // 摘要: // 输出日志,级别LOG_FATAL // // 参数: // logLevel: // FENIO.LOG_LEVEL,输出日志级别。 // title: // System.String 日志信息。 // len: // 输出byte类型数据的大小。 // lpBytes: // 输出字节型数据,System.Byte 数组。 public void WriteBytes(LOG_LEVEL logLevel, string title, int len, byte[] lpBytes) { } #endregion #region ------Private------ private void OpenFile() { } private void CheckFileSize() { } private string GetCurrentTime() { } private void WriteLog(LOG_LEVEL logLevel, string log) { } #endregion } }

19,502

社区成员

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

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