国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

如何在Angular.JS中接收并下載PDF

2019-11-19 18:49:07
字體:
供稿:網(wǎng)友

介紹

jsPDF 是一個(gè)使用Javascript語言生成PDF的開源庫(kù)。你可以在Firefox插件,服務(wù)端腳本或是瀏覽器腳本中使用它。

客戶端Safari 和 iPhone Safari 支持得最好,其次是Opera和Windows下的Firefox 3等。IE暫不支持。

示例代碼:

var doc = new jsPDF();doc.text(20, 20, 'Hello world.');doc.save('Test.pdf');

服務(wù)器端可以完美運(yùn)行。

jsPDF使用方便,但是不支持中文

pdfmake支持中文,但是由于還需要引入font文件,導(dǎo)致文件體積可到十幾M,不適合前端。

pdfmake 是基于客戶端服務(wù)器的 PDF 打印解決方案,完全基于 JavaScript 開發(fā)。提供強(qiáng)大的排版引擎

安裝:

client-version bower install pdfmakeserver-version npm install pdfmake

最后還是采用了后端生成PDF,前端通過接口請(qǐng)求,后端返回PDF Stream,最后前端通過Blob生成PDF并實(shí)現(xiàn)下載。

AngularJS中的解決辦法

$http.get('/receivePDFUrl', {responseType: 'arraybuffer'}) // 設(shè)置$http get請(qǐng)求的responseType為arraybuffer .success(function(data){  var file = new Blob([data], {type: 'application/pdf'}); // 使用Blob將PDF Stream 轉(zhuǎn)換為file  var fileUrl = URL.createOjectURL(file);  window.open(fileUrl); // 在新的頁(yè)面中打開PDF })

如何設(shè)置PDF的文件名

$http.get('/receivePDFUrl', {responseType: 'arraybuffer'}) // 設(shè)置$http get請(qǐng)求的responseType為arraybuffer .success(function(data){  var file = new Blob([data], {type: 'application/pdf'}); // 使用Blob將PDF Stream 轉(zhuǎn)換為file  var fileUrl = URL.createOjectURL(file);   var a = document.createElement('a');   a.href = fileURL;   a.target = '_blank';   a.download = 'yourfilename.pdf';     document.body.appendChild(a);      a.click(); })

遇到的問題

后端采用reset api的方式來寫接口。前端框架采用的AngularJS,所以就采用$resouce來調(diào)用接口,同樣也設(shè)置了responseType:arraybuffer,但是生成的PDF卻無法打開。最后還是改為用$http.get()方式就可以了。

兼容性問題

由于使用了HTML5 API: Bolb,所以只能支持IE10+。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家學(xué)習(xí)或者使用Angular.js能有所幫助,如果有疑問大家可以留言交流。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 碌曲县| 江阴市| 中宁县| 萨迦县| 龙陵县| 高清| 贵南县| 攀枝花市| 阿鲁科尔沁旗| 云和县| 昭觉县| 定边县| 城市| 白沙| 剑阁县| 黔江区| 九寨沟县| 铜山县| 金沙县| 长泰县| 建平县| 大理市| 瑞金市| 田阳县| 于田县| 邮箱| 色达县| 社旗县| 平江县| 马公市| 镇原县| 剑阁县| 武乡县| 兰州市| 朝阳县| 夏邑县| 邹城市| 江川县| 太湖县| 上高县| 宁海县|