今天查了网上的一些说法,又经过自己的试验,终于找到我在家打印文档选打印机时WPS失去响应的原因。基本事实如下:
1、我所使用的操作系统为Deepin 15.3桌面版 64位,之前打印正常(当时打印设置中的打印机有办公室的HP LaserJet M1319f MFP 和家里的HP LaserJet M126a)
2、后来去另一个办公室工作,安装了网络打印机 (打印服务器是用 Raspberry Pi 2B做的,2016-09-23的jessie镜像,打印机为HP LaserJet P1505),当时用过WPS能正常打印文档
3、前一次和今天在家打印文档,都遇到WPS下一点打印就失去响应,然后让我选等待或者强制关闭,事实上只能强制关闭
4、前一次和今天,在失去打印后,都可以重新开启WPS,导出文档为pdf,然后用系统自带pdf阅读器(应该是Evince)打开并正常打印,该阅读器似乎无双面打印功能(这个功能也是我为什么今天非要用wps,而不用LibreOffice的原因,个人目前不清楚LibreOffice是否支持双面打印)
5、从Deepin中将网络打印机点右键,“启用”前的勾去掉,不能解决问题。但是,直接将无线网络关闭(有线是未接的,故等于断开网络连接),然后再去wps中点击“打印”,很快就出来打印对话框,选择家里打印机并顺利双面打印
小结(含猜测):WPS (版本10.1.0.5672)的打印功能存在Bug,如果有网络打印机,它在打印对话框出来之前,试图去“寻找”并“连接”所有打印机,从而方便用户选择,但是,如果此时网络打印机是“不可达”的,那么WPS很可能长时间在尝试连接,甚至有可能死循环。只要网络连接断开,网络打印机就不再被枚举,从而避开了卡死问题。因为同样的文档,同样的系统同样的已设置打印机,无论Evince还是LibreOffice都不会出现打印卡死现象,所以这个问题应该是可以被解决的,个人认为,对于网络打印机,应该只枚举名字,在用户选择了它时在进行连接,并且设置好合理的超时参数,并在必要时给出提示,这样用户体验会好一点。
BTW,WPS有很多问题,没有LibreOffice稳定,但它实实在在做了很多国人觉得非常好的功能,愿它在磕绊中努力前行吧