SaaS系统的前端Js打印的狗血故事

我刚刚完成一个义齿行业的SAAS系统的开发验收工作。本系统可基本定义 为义齿工厂的ERP系统。不过除了ERP的完整功能外,还具有部分针对牙医诊所的医、技师涉及的一些功能。ERP系统从CS结构就已经开始做了,做了很多年了,技术角度来讲基本没什么太大的挑战,倒是业务系统中频繁使用的纸质表单打印让我曾经相当头痛。接下来我在这里把这个项目过程中的经历整理一下,记录在在这里,算是对自己在这个项目中的工作留个标签,毕竟我也是一个希望自己可以有资格写自传的人(万一呢,有备无患嘛_)。同时也希望可以帮助到其它御览过此文的IT棒棒些。
此系统无论是从诊所端还是工厂端都涉及了大量的与打印相关的需求,此需求产生的原因之一是因为GMP符合性相关的要求,另一原因实物打印输出物是工厂与诊所甚至终端消费者之间传递信息的一个重要媒介,毕竟需要义齿的患者主体还是中老年人居多,传统的实物模式明显更容易被他们接受。
从订单开始,无论是诊所端发起还是工厂内部发起订单相关的信息在电子流转的同时纸质表单也随生产过程一起传递,生产成完成后,质保卡、合格证等也需要随成品一同装盒,甚至在寄出前根据客户要求,可能还需要打印发票及出库单等。涉及到多种打印设备较多,如质保卡是PVC的,发票是针式的,生产跟踪单是普通激光打印机的……,打印要求也各有不同,有些需要套打,如质保卡、发票等,有表格打印,并且有些表格在同一页中还有多个表头,表头的位置也需要根据上一个表格的数据内容动态变化……,总之各种你之前遇到的或能想象到的花式,在这里都算是遇到了。
前端基于JS的打印与CS结构的系统打印有很大的不同。Java script自身能提供的打印功能是非常局限的,同时浏览器因为安全性方面的原因从几年前就开始限制使用控件了,包括ActiveX及NPAPI方式。
我们这个系统是部署在互联网上的开放SAAS系统,应用环境不太可能被预测或被限制,常用的降低浏览器版本来支持传统插件的方式一开始就被否掉了。常规方法就只剩下使用JS自身提供的打印功能来实现了。也正是这个方案成为了后来让前端崩溃的最后一根稻草。刚开始的时候还好,业务只是围绕着订单这一个纸质表单开始的,每个表单往往不超过一页,格式上也没什么特别的要求,只要打印内容齐全就OK。直接用print函数就搞定了, so easy。但随着功能的迭代,问题就出来了,表单开始超过一页了,打印的格式也越来越多样了。一切自此就开始混乱了。首先是调试的时间明显增加,其次是第二分页的需求也越来越难以满足,再者产品经理对打印格式的要求也越来越多。这个时候我隐隐感觉其它公司开发和产品经理之间的极端冲突很有可能在我们公司上演……
每天例行的站会上逐渐开始有对此前打印方案决策过程质疑的声音出现;因为打印影响进度的报告也经常被听到,系统架构师和产品经理面子上很是有点挂不住了,项目经理成为了濒临崩溃的第一人。换不换方案成为一个明确的问题!产品助理开始在网上搜索除控件外的其它解决方案。有一件事是确定的,那就是控件方案仍然是不可能被通过的。
方案到底还是出来了。好吧,c-lodop如何?jatoolsPrinter可好?结论是都可以,所有业务中需要用到的打印基本都可以实现。至于复不复杂嘛先不说,反正肯定是比用print要简单不只几百倍。只是……要花钱,项目经理开始犯嘀咕,不晓得老板能不能同意。同不同意也得上啊,这不就是属于你的showtime了吗?谁让每次项目奖金你拿大头,难道不应该吗?毕竟这是预算外的开支,项目经理原本还把产品经理也拉下水,一起准备了一大套有关于可行性和必要性的说辞。结果没用上,老板最后只反问了一个问题:难道自己开发的时间就不是钱吗?真是个好老板啊,明事理,一万遍的谢主隆恩后高高兴兴的回来了。大家也就跟前打开了紧锁的双眉,毕竟这都关系着每个人的钱钱啊……
虽说准奏了用钱,但本着每个人的主人翁责任感和以司为家的职业精神,(真实的原因其实应该是对上面有这么一个深明大义的领导的感恩和向心力,这只是其中一个例子,类似的例子还有很多),大家没有止步于这两家的方案。还别说,真就让人找到了,功能具有完全的可比性,但价格却低了很多,这就是我们最终使用的JsPrintSrv。
“到底靠不靠谱哦,别被搞砸了,好心干了坏事啊!”,“不是有试用版吗?又不要钱,花点时间测试一下吧!”……,七嘴八舌的讨论后大家还是一致认同伟大领袖说过的那句话,实践是检验真理的唯一标准。
至于检验的过程就不啰嗦了,纯粹都是些基础的技术问题,也没什么值得回味的内容,都是苦逼工作,也没什么可以用来搞笑的点,更没办法写进自传了,我觉得太多技术细节的自传应该是很难卖的。试用版完全能够满足我们系统各种业务场景下的需求。其实后来付费购买之后发现,试用版与付费版根本就是同一个安装包,功能的限制不在安装文件里,而在license授权上。试用版只能使用在以localhost为主机的网站上,付费版根据你买的版本不同确定使用范围。
对了,有个事情还是有那么一点搞笑的,不过这是听项目经理说的,真假我就不知道了。项目经理付费购买的时候问,你卖这么便宜就不怕别人不相信你这个东西吗?对方说,我也希望能卖贵点啊,就像那些个在酒店做买卖的女性朋友那样,哪个不想多赚点钱嘛,但他们的客源不是还得靠坐在电脑前面的那堆拉皮条的啊。等我们找到拉皮条的没准价格就可以上去了……


这里再提供一个这个提供这个产品的网站链接:http://www.exinqiao.com/jsprintsrv.html?page=打印

你可能感兴趣的:(SaaS系统的前端Js打印的狗血故事)