如何在AngularJS中接收PDF并下载
0 Comments前言
这两天公司正在做一个PDF协议下载的功能。解决方案可以分为完全前端生成和后端生成两种方式。前端生成PDF有jsPDF 和pdfmake https://github.com/bpampuch/pdfmake两种方式。
jsPDF使用方便,但是不支持中文
pdfmake支持中文,但是由于还需要引入font文件,导致文件体积可到十几M,不适合前端。
最后还是采用了后端生成PDF,前端通过接口请求,后端返回PDF Stream,最后前端通过Blob生成PDF并实现下载。
AngularJS中的解决办法
1 |
|
如何设置PDF的文件名
1 |
|
遇到的问题
- 后端采用reset api的方式来写接口。前端框架采用的AngularJS,所以就采用
$resouce
来调用接口,同样也设置了responseType:arraybuffer,但是生成的PDF却无法打开。最后还是改为用$http.get()方式就可以了。
兼容性问题
由于使用了HTML5 API: Bolb,所以只能支持IE10+。