Giter VIP home page Giter VIP logo

printer-analysis's Introduction

printer-analysis

master branch

  • doc目录 存放程序开发文档
  • APP目录 存放开发过程中android app制作的文档
  • 移植目录 存放开发过程中linux c程序移植的文档
  • report目录 存放开发过程中的工作汇报

To take part in the development, please read documents in doc from the beginning.

参与开发请查看doc目录下的文档,其他目录的文档为开发过程中的报告,并非正式文档,但可能会有帮助。

dev branch

  • 该分支存放移植过程中的文件

dev-app branch

  • 该分支存放安卓打印插件APP的代码

printer-analysis's People

Contributors

chyyuu avatar chyyuu-tsinghua-cs avatar eva980636 avatar hsingpeng avatar taocr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

printer-analysis's Issues

交叉编译移植ghostscript和foo2zjs到android

参考

实验室已购置hp p1108打印机,经过测试,在桌面linux上通过ghostscript和foo2zjs可以成功驱动该打印机。
参考上述博文,移植两个包到android中,对于android使用x86虚拟机还是arm机器不限制。

目标:学会交叉编译,成功移植并在android中通过命令行可以实现打印。

HeXingPeng :: printer: Plan 2016503 -- 20160531

何兴鹏
5月3日 ~ 5月8日 整合CUPS进android
5月9日 ~ 5月15日 编写CUPS交流接口 中 打印
5月16日 ~ 5月22日 与北大同学沟通,编写通知栏接口
5月23日 ~ 5月29日 完善程序

潜在困难:
cups读写USB的权限问题,安卓不允应用直接读写usb设备。之前没有用cups时,通过接入android usb框架,在java层实现读写。而cups使用libusb库直接读写usb设备文件。安卓中有个usb用户组能直接读写,我在尝试修改程序权限,想让程序加入usb用户组,还在寻找方法。

网络功能不知道CUPS移植后能不能用

Daily report 2016-07-21 TaoChenRong

2016-7-21
测试自带网络功能打印机打使用
继续调查Cups与Cups之间网络连接进行打印时的Filter failed错误原因

自带网络功能打印机测试结果

  • 在openthos上嘉华龙马打印机能够正确使用;
  • HP P2015dn打印机无法进行连接,不是Cups的问题,在Windows上也无法正确连接,手动修改ip地址后结果仍无法连接,因此判断可能是连接方式不正确或者打印机设备问题。

静态编译CUPS

由于bionic编译cups遇到困难,先使用静态编译CUPS到android x86中,测试cups运行情况。

Daily report 2016-07-27~2016-07-29 HeXingPeng

2016-7-27
重构管理界面代码,解决打印机列表错乱的问题。
按照UI设计要求美化界面。
2016-7-28
解决openthos作为客户端无法网络打印的问题,系CUPS操作问题。
修改完善Printer功能需求与设计实现文档
2016-7-29
几个主要界面美化完成。
修复一个就绪任务状态不更新的问题,提高打印任务更新及时性。
提交这几天的patch。

Daily report 2016-07-04 ~ 2016-07-06 HeXingPeng

2016-7-4
找到并验证解决打印任务状态变更无效的方法,交与陶琛嵘实现。
调查cups,发现有双面打印、没有缺纸处理功能,但是双面打印在HP P1108打印机上无效。
2016-7-5
调研cups官方关闭cups服务的方法,发现其直接使用kill命令。
与quzhongshan沟通通知栏打印机部分功能的实现。
修复打印任务显示错误的bug。
review陶琛嵘的更新,发现打印任务状态变还有其他问题。
2016-7-6
解决打印状态变更问题。
请教陈工代码提交相关事宜。
修整代码,待修改好后再提交。

调研优先支持打印机在Linux上的支持情况

奔图激光打印机
hp、Epson激光和喷墨
Epson票据打印机

由于这部分可能涉及购买,请陈莉君老师酌情考虑。
或者大致了解上述打印机在Linux上是否已经有很好的打印支持?(至少wps, adobe reader)

TaoShenRong :: printer: Plan 2016704 -- 20160731

7月4日 ~ 7月9日 添加网络打印功能
7月11日 ~ 7月16日 完成并测试网络打印功能
7月18日 ~ 7月23日 编写开发文档,继续测试打印程序
7月25日 ~ 7月30日 完成开发文档编写,测试并完善打印程序

Daily report 2016-07-11 HeXingPeng

2016-7-11
编写打印机通知栏代码,接收broadcast发来的打印任务数据并显示,待服务器恢复后编译测试。

YangMao :: printer: Plan 2016503 -- 20160531

杨茂
5月3日 ~ 5月8日 完成CUPS编译运行(若有困难不能解决先拿出一个可用方案)
5月9日 ~ 5月15日 移植gutenprint驱动(若能用动态链接编译最好)
5月16日 ~ 5月22日 测试CUPS中的网络打印机功能
5月23日 ~ 5月29日 尝试移植奔图打印机驱动

潜在困难:
cups还没编译成功

Daily report 2016-08-03~2016-08-05 HeXingPeng

2016-8-3
更改策略,系统启动时就初始化数据。
测试。
2016-8-4
测试发现bug并尝试解决
2016-8-5
解决一个打印机被自动在暂停导致不能打印的bug
尝试分离界面和服务,以便接手的人将打印功能集成进setting

TaoShenRong :: printer: Plan 2016503 -- 20160531

陶琛嵘
5月3日 ~ 5月8日 学习CUPS交流接口编写
5月9日 ~ 5月15日 编写CUPS交流接口 中 打印机管理
5月16日 ~ 5月22日 编写CUPS交流接口 中 打印任务管理
5月23日 ~ 5月29日 编写CUPS交流接口 中 网络打印机管理

分析android中的打印子系统

在android 4.4之后加入了打印子系统,调研该部分内容。
目标:了解anndroid打印子系统,学习android print api,能够做到系统打印的接入。

Daily report 2016-08-01~2016-08-02 HeXingPeng

2016-8-1
研究自动选择驱动的实现,发现有CUPS已实现该功能
2016-8-2
添加自动选择驱动
添加线程池管理线程。
界面细节修改。
添加自动检测插入新打印机的功能。
正确关闭cups防止数据丢失。
保持cups在后台运行以接收网络打印任务。

制作DEMO连接最简驱动实现HP P1108打印

完善android打印插件,整合HP P1108打印机的驱动ghostscript + foo2zjs,驱动打印机。

  • 暂时使用ghostscript + foo2zjs,待cups成功移植后再加入cups
  • 拟使用命令行与驱动进行交互

目标:实现一个能够使HP P1108打印机工作的DEMO,完成从上层到下一个完整的可演示的APP。

Daily report 2016-07-25~2016-07-26 HeXingPeng

2016-7-25
添加hplip 及其 闭源 plugin驱动,未完成。
2016-7-26
完成添加hplip 及其 闭源 plugin 。
打印机需要使用hp专用backend才能使用hplip plugin,编写转换脚本替换原hpcups filter实现动态变更。
与陶琛嵘查找cups作为客户端网络打印失败的原因,未找出。

Daily report 2016-07-12 TaoChenRong

2016-7-12
完成openthos作为打印服务器,windows作为客户机的情况的打印功能添加并进行测试
探究windows作为打印服务器,cups作为客户机的情况如何添加打印机成功打印,目前初步定为添加samba服务器部分连接cups与windows

分析设计打印机配置app界面

通过调研桌面端的打印机配置界面,分析打印机配置app的界面构成

  • 分析该界面需要哪些功能,如何分布
  • 设计打印机配置界面原型(草图,电子档均可)

TODO : features && bugs

#1 features

HIGH

  • (网络打印1/6)openthos作服务端,win客户端打印
  • (网络打印2/6)openthos作服务端,ubuntu客户端打印
  • (网络打印3/6)win作服务端,openthos客户端打印
  • (网络打印4/6)ubuntu作服务端,openthos客户端打印
  • (网络打印5/6)openthos作服务端,openthos客户端打印
  • (网络打印6/6)自带网络功能的打印机作服务端,openthos客户端打印
  • 完善打印参数(指定彩色/黑白)
  • 页边距设置功能(WPS等编辑软件已有该功能)
  • 打印页码选择功能
  • 打印机设置功能
  • 打印任务管理功能
  • CancelPrintTask C3 取消打印功能

MIDDLE

  • 添加hpcups/hplip驱动(主要支持hp喷墨打印机)
  • 正确关闭cups程序(解决CUPS不及时存储数据的问题)
  • 打印机高级设置,各项微调
  • 插入打印机自动提示

LOW

  • 自动选择打印机驱动
  • 扩充纸张大小参数MediaSize对应项
  • 调节打印管理界面布局

CUPS不支持

  • 双面打印(指定无效)
  • 缺纸提示

暂不需要

  • 添加ROOT模式运行(脚本:chown current_id:current_id all_files)
  • 判断系统平台,以提示驱动是否可用
  • 使用strip缩减程序体积
  • 自动判断是否已勾选打印服务插件
  • 在程序中写个使用帮助,告知用户打印流程
    #2 bugs

HIGH

  • 打印任务不及时更新
  • 打印机调整配置页面点击确定后打印服务崩溃
  • 有些ppd无法正确解析到设置
  • 打印任务状态显示unknown
  • 打印任务从暂停状态恢复失败
  • 修复tar解压文件部分权限丢失
  • 去除奔图ppd文件名中的空格

MIDDLE

  • 修复打印管理界面偶尔错乱BUG
  • 添加本地/网络打印机字段为空判断(也不能有空格)

    LOW

暂不需要

  • 在其他系统上不能检测某些USB打印机
  • 初始化成功不刷新列表(缺省应该没有打印机)
    #3 other
  • foo2oak等驱动测试
  • 给openprinting贡献打印机测试情况
  • 调查网络打印是否可用
  • 收集驱动色彩键值
  • 编写脚本根据文件owner权限批量修改文件后两个权限(解决无法打开web管理界面问题)

ZhenHuaLi :: printer: Plan 2016503 -- 20160531

郑华利 卢晓荣
5月9日 ~ 5月15日 编写打印任务管理页面
5月16日 ~ 5月22日 测试打印、打印机管理及编写程序操作交互提示
5月23日 ~ 5月29日 完善与测试

Daily report 2016-07-11 ~ 2016-07-15 HeXingPeng

2016-7-11
完成打印机通知栏代码,待编译测试。

2016-7-12
由于服务器在重新部署开发环境,今天主要编写开发文档。
大体完成如下:
介绍引导(中文版):
https://github.com/openthos/printer-analysis/blob/master/doc/zh/OVREVIEW.md
支持的打印机(英文版):
https://github.com/openthos/printer-analysis/blob/master/doc/SUPPORTED_PRINTERS.md
如何构建程序(中文版):
https://github.com/openthos/printer-analysis/blob/master/doc/zh/BUILDING.md
下面计划完成 制作CUPS数据包 和 开发打印程序 部分。

2016-7-13
与嘉华龙马工程师沟通,对方打印机已能够使用。
服务器不稳定,尝试在本地环境编译源码,编译出错。

2016-7-14
去嘉华龙马公司了解情况并借用一台打印机
改变 dev-app 分支代码结构,使其与系统代码结构一致。
测试通知栏代码,需要修改。

2016-7-15
完成并测试通知栏打印部分代码,下周提交。
添加嘉华龙马打印机驱动。

Daily report 2016-07-25~2016-07-29 TaoChenRong

2016-07-25
完成网络打印机目前已实现功能部分的操作步骤说明
修改打印机设置查询部分代码
添加打印服务页面提示信息

2016-07-26
用tcpdump和wireshark查看打印机网络打印机发送内容,查找filter failed原因,仍未找到

2016-07-27
在archlinux安装最新版cups后尝试用其发送网络打印请求,结果出现Filter failed错误以及No pages found错误,原因没有找到

2016-07-28
找到方法解决错误,使用CUPS进行通信的服务端与客户端不能同时选择打印机相对应的驱动,只有服务器端选择才能正常打印,客户端则选择Generic中的IPP Everything Printer驱动进行打印。
对于Ubuntu自带1.7版本的CUPS,其中没有IPP Everyting Printer选项(在2.1以后的版本中才增添此驱动),因此需要使用Generic PostScript Printer驱动,但是发现打印出的测试页存在部分边框消失的情况,仍在解决。

2016-07-29
对打印边框消失问题进行解决,发现此问题在HP打印机上没有问题,而在奔图打印机上出现了画面整体向右上侧移动的现象。
对网络打印的操作方法以及测试的结果汇总,编写文档

Daily report 2016-07-21 HeXingPeng

2016-7-21
对于已删除的打印机在系统打印服务界面仍有记录,需要手动删除记录,不是bug。
修复第二次无法选择打印机的问题。
解决打印机获取颜色错误导致崩溃的问题。
提交patch。

Daily report 2016-07-07 ~ 2016-07-08 HeXingPeng

2016-7-7
修整代码,并改为英文注释
与陶琛嵘研究开启打印机网络分享后本地打印出错的原因,找到出错代码,但未找出原因
测试奔图P2500W打印机,可以打印
2016-7-8
提交打印程序更新patch
测试网络打印成功,系陶琛嵘的开发环境有问题
与嘉华龙马工程师沟通,为其提供最新打印机程序
阅读PhoneStatusBar.java源码,编写通知栏打印部分

HeXingPeng :: printer: Plan 2016704 -- 20160731

7月4日 ~ 7月9日 完成通知栏显示打印状态功能
7月11日 ~ 7月16日 完善打印功能,整合并测试网络打印功能
7月18日 ~ 7月23日 开发文档编写,继续完善打印程序
7月25日 ~ 7月30日 完成开发文档编写,测试并完善打印程序

Daily report 2016-08-01~2016-08-03 TaoChenRong

2016-08-01
解决打印机配置页面点击确定后会崩溃的bug
调查各打印机纸张大小MediaSize的详细数据,对比android中可打印的尺寸进行添加

2016-08-02
完成MediaSize的尺寸添加,目前将支持的尺寸添加到32种
编写打印服务中支持的尺寸与PPD文件中具体尺寸名的对照表

2016-08-03
测试本地打印服务中各种类的驱动,看是否存在filter failed等问题,目前发现foomatic/foo2oak种类驱动存在问题,已解决

Daily report 2016-07-13 TaoChenRong

2016-7-13
cups中添加samba服务器链接打印机的部分,通过其与windows共享的打印机进行通信,并在openthos上进行测试,成功打印

20160509语音会议记录

一、暂时搁置CUPS网络打印功能
由于目前编译完成的CUPS并不确定网络打印功能方面能否正常运行,决定将精力暂时放在主要的问题上,所以暂时不关注网络打印功能方面的实现。

二、暂时搁置奔图打印机的支持
由于对Epson、Hp及奔图几个品牌的打印机对Linux的支持情况,发现奔图打印机的驱动需要依赖动态库,而且无法获取驱动的源码,也找不到可以代替的驱动,因此暂时搁置对奔图打印机的支持。

三、目前基于单窗口设计打印机界面及通知
由于目前多窗口制作的部分不方便进行沟通且不完善,因此目前只基于单窗口进行打印机界面及通知的设计、制作。

四、实际测试对Epson、Hp打印机的支持
目前Hp打印机已经购买实体机并进行了测试,能够正常驱动。接下来购买Epson品牌打印机进行实际测试。

五、希望能够在设计及程序设计等所有方面都有具体文档介绍
在移植打印机以及编写交流接口等各个方面,要求有详尽文档进行说明,郑华利、卢晓蓉要与其他三名组员详细交流,完成好文档的编写。

Daily report 2016-07-20 TaoChenRong

2016-07-21
测试自带网络功能打印机的打印功能,成功打印测试页。
不过在hp p2015dn打印机网络打印测试时,发现打开网络功能后无法ping同打印机ip地址的情况,网线直连打印机改为同一网段后仍无法连接。

学习并尝试以安卓默认的bionic库编译cups

学习并尝试以安卓默认的bionic库编译cups(目前仅移植cups,其他包暂不处理)。
作为编译方案的方案二,详见

20160224_何兴鹏_android打印机开发进展.md

这是一条重要的移植方案。

需要学习如何原生编译android中使用的c程序。
大致需要先调研cups的Makefile中编译了哪些文件,然后编写android.mk。
具体可以参考ffmpegntfs-3g的移植过程。

因为cups本身代码较多,可能需要大量修改,要求工程师掌握资料快速搜集和高效的动手能力。
若最终无法成功,说明失败原因。

学习java及android软件的制作

  • 入门java
  • 入门android软件的制作

JAVA速成教程

Java4android
http://study.163.com/course/introduction.htm?courseId=201001#/courseDetail

安卓教程

Mars Android应用程序开发(重制版)第一季
Android应用开发视频教程(重制版)第二季
在线观看
http://study.163.com/course/introduction/207001.htm#/courseDetail

安卓官网学习资源:
https://developer.android.com/develop/index.html

另外附上一个教程网站,官网教程翻译,可参考学习:
http://hukai.me/android-training-course-in-chinese/index.html

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.