动态生成实物文件思路

    前段时间做了一个小项目,大概的要求是,所有的数据动态配置,用户点击下载操作的时候,生成一份刊物,最终用户可以得到一份PDF文件提供给供应商彩印。

    一开始,UI还没有提供刊物的效果图,直觉上是一件比较简单的事情。

    当时的思路是:

  如果刊物内容不复杂,直接让RD在后端生成PDF文件就行,后端给前端提供下载链接,而前端只需要将流输出。

  而如果刊物内容复杂,就需要前端去做刊物内容的处理,而不是简单的下载操作。

  这种情况下,步骤是:

  1、前端绘制刊物的每个页面;

  2、将刊物内容转成图片放到文件服务器;

  3、将图片链接提供给后端;

  4、后端生成PDF文件;

  5、前端轮询,后端文件生成完毕就直接下载。

    需要UI设计的刊物后端能直接处理的可能性不大,所以需要前端处理概率就比较高。而最终效果图出来,也确实如此,还好我们事先已经有了应对的方法。

    按照这样的思路,我们做了初版刊物,看似完美的方案,还是有明显的问题所在。

  1、整个过程依赖网速,无论是上传还是下载,前端还是后端。

  2、能够彩印成刊物的图片,像素必须高,意味着图片文件大,传输受ngnix限制。

  3、刊物有特殊的多种字体,字体文件很大。

  4、刊物页码多,生成图片多,再加上受制于网速,耗时相当长。

  理想和现实有了一定的差距,但是别灰心,前端有自己解决问题的方式。

( 后续请看下文——jsPDF在前端项目中的应用 )

愿时光为我加冕
原文地址:https://www.cnblogs.com/taishuhanmei/p/11288655.html