公司有一个打印发货单的功能

967 阅读4分钟

当时接到这个需求的时候,我第一想到的是把这个发货单下载成Excel

让客户自己去打印,领导不同意,为了他心目中的产品好用一点,他希望通过浏览器打印(可能他百度到前端可以通过浏览器打印吧,但他没找到别人家的产品可以通过浏览器打印)

1.我觉得也行,浏览器打印吧,不就是window。print()嘛,然后既然浏览器打印了,肯定要解决浏览器的兼容性问题吧,领导说,不行,那么多浏览器你怎么兼容的完,他异想天开的让我即通过浏览器打印,又不要调用浏览器打印,而是直接调电脑系统的打印。我给他解释半天不得行,他不信,我给他讲技术壁垒,他给我讲工作态度,“你先试,试了不得行再说”

2.搞了一天,不得行。然后我就做浏览器兼容了,(当然只兼容几大主流浏览器)然后在公司普通办公打印,打印效果完美。给客户测试,客户说:不得行,成像效果不好。这时候领导说:你调调样式,调调字体嘛,然后我以为是打印样式与css样式不一样,一直在调样式。调了一个星期,客户那边就三个字,不得行,就是这种沟通与方式,最后我提出你要不去客户那里把它打印的纸拿给我,要不排个照给我,不要按照你的理解,反馈信息给我。

3.看了客户的打印效果照片,我的思考就是客户的打印机不能打印图片(客户是针式打印机),而window.print()实质就是把页面截个屏,然后实现打印,它的实质就是打印一个图片,给领导反馈这个信息,领导说那你做成pdf 下载下来打印吧,我说前端生成pdf实质也是一个图片,领导说:你先试,试了不得行再说。好我又搞了一天 做了一个pdf 版 果然打印效果不的行。

4.我就说做成Excel吧,我想让后端导成Excel文件给我,后端不想做,当然前端也有很多方法导Excel,但是大部分的插件 方法 等,都不好控制样式,最后我也不好控制样式(xsls.js 里面太多二进制的东西,我太菜,确实不太好手撸)。

5.曲线救国吧,本来js 在浏览器上就没有写入文件的功能,好在 有一个docxtemplater 插件,它可以让你设置一word模板,然后用变量的方式,把数据写进去,我想这样就可以解决我不好设置样式的问题,但是客户反馈表格的时候,被切了一行这时候我问客户的的纸张大小是什么?客户说不知道,好吧,我问了他们纸的名字,自己去百度尺寸,在这之前领导一直让我按照a4做,结果客户的纸张大小是241mm*139mm.我按照这个设置,结果因为纸张宽度大于高度word直接给我变成横版,不可改,然后客户就说打出来方向不对,我也不知道客户是不是可以更改纸张方向,反正客户就说不行啦。 你们也知道客户是老大嘛,我们也不能要求他们什么。

插个前提: (1)我的情况是对客户打印机是个什么样子完全不了解,客户的纸张大小是什么不知道,客户打印机能打印什么样的文件不知道,客户希望打印出来样式是什么不知道(怎么分页,需不需要每页都加上页码等。。)

(2)我们公司的与客户沟通的方式是  我公司不懂技术领导去和客户公司领导沟通,客户公司领导再和他的系统使用客户沟通,是一个三角关系,反正每次都说这个打印不得行,没有任何实质行的原因反馈,结果我做了6个版本的打印,一个一个试

6.领导在网上又看到了一个lodop 的打印方式,我说这个需要用户下这个插件,用户能同意吗?领导说:你先做出来试试,试了不得行再说。现在我做出来了正在等客户反馈。。

7总结;无话可辩,就是自己技术菜