我测试了3台打印机:1.Canon iP2780 2.Canon MX428 3.HP Deskjet 1000。由于的我作业系统就是Linux,在Linux PC上很快就逐个搞定。第1台用的是这里的驱动(包括deb包和部分开源源码)加上这个《iP2700
series IJ Printer Driver Ver. 3.30 for Linux (操作说明)》,机器就可以正常使用了;第2台和第一台驱动模式都是一样的只不过在这里;第3台用的是这里的一级一级选择最终下载文件是:hplip-3.14.1.run,直接执行会把所缺失的东西全部安装,可以成功使用。 如果我仅仅是一个使用者,那么到现在可以就结束了。但是我是一个开发者,我最终的目标是移植到Android中,所以我的目的地不在这里,我要继续深度挖掘。要挖掘的点很多,这里说一个最迫切的就是如何用命令打印一个文件?这个问题似乎很奇怪,但是我也不知道如何做。不过最终找到了就是:lp或者lpr加文件名,就可以打印出一个文件了。例如:[plain]
view plaincopy
lp ~/hello.pdf
找这么一个命令我就花费了几个小时的时间,这里我就有一种很强的预感,前边的路很还很遥远。(整理文章的顺序和实验的步骤会稍有不同,其实这个命令在《iP2700
series IJ Printer Driver Ver. 3.30 for Linux (操作说明)》是有的,但是这个“操作说明”是后来才看到的)。现在看来我不应该草率进行去进行第二个阶段,应该好好的研究一下Linux的打印系统。总结文章就按照最好的流程来吧。先说我是怎么了解了linux的打印系统的。意外发现的这个本书《Linux系统管理技术手册》,真是对我了解Linux的打印系统帮助是最大的,涵盖的知识面也是最全的,以后的阶段中用到的自认为是新的东西,其实这本书上都详细讲解了。讲解打印不是讲解如何打印就好了,而是详细的讲解了打印机的原理,要经过哪些步骤,打印机语言等等,如果是国人写的书一般会说“此内容不在本书要讨论的范围内”一句概括。那一章我反复看了一周时间才算有些眉目。一切终归一张图: 其实到目前为止我应该好好规划一下我要设计的东西,实现中我急功近利了,并没有做完全的规划就进行了第二阶段。小规划: 打印机选择:推荐选择HP的,激光的喷墨的都可以,HP是全力支持Linux的。 打印系统的选择: 大的架构是CUPS,主要的模块有: 后台: 过滤器: PPD:其实在图中随便从上到下连一条线,就可以组合成一套打印系统。下面进入第二阶段吧。 在测试过程中还意外发现CUPS一个bug,或者是我还没有已经有解决方案我还没有发现而已。那就是CUPS缺少错误处理, 一台打印机,如果出现墨盒用完,墨盒实效等等问题的时候,CUPS是没有告知用户的。比如我的HP Deskjet 1000,在使用CUPS打印时出现了这个情况:打印机无响应,用lpstat
-t查看到的状态是“Rendering completed”。这就找不到问题所在了,不过同样的情况下在Windows下找到了答案: