昨天我們介紹了PDF.js這套用來讓前端可以直接瀏覽PDF檔的library,今天我們來介紹一款可以在前端直接產生PDF檔的神奇程式-jsPDF。
要使用jsPDF非常容易,載入js程式後,我們先簡單加入以下程式碼
var doc = new jsPDF();
doc.text('Hello world!', 10, 10);
doc.save('helloworld.pdf');
就能夠立刻產生一個PDF檔啦!打開看看,就能夠看到我們剛剛使用doc.text()
產生的Hello world的文字,這個PDF檔是透過doc.save()
產生的。是不是超簡單的阿!
如果需要產生不同的內容如矩形方塊、圓形或設定顏色等等,可以參考官方的文件:http://rawgit.com/MrRio/jsPDF/master/docs/index.html
jsPDF也可以html2pdf外掛,輕易的將畫面上的HTML轉成PDF(範例),不過目前jsPDF並沒有支援Unicode,也就是說如果是中文的話可能會無法使用,目前能做到的只有透過html2canvas將HTML轉成canvas後,再將canvas轉為圖片,最後在加到jsPDF中。
var doc = new jsPDF();
html2canvas(document.body, {
onrendered: function(canvas) {
var image = canvas.toDataURL("image/png");
doc.addImage(image, 'JPEG', 0, 0, canvas.width, canvas.height);
doc.save('test.pdf');
}
});
程式碼DEMO:https://jsfiddle.net/wellwind/wpxnhpfs/
雖然目前jsPDF還不支援Unicode,但先學起來,說不定哪天就可以用到囉!
文章同步法表於: https://dotblogs.com.tw/wellwind/2016/12/29/front-end-jspdf
不正經閒聊
只剩下一天,終點衝刺啦!!
「將canvas轉為圖片,最後在加到jsPDF中」
var image = $(pdfCanvas)[0].toDataURL("image/png");
pdf.addImage(image, 'PNG', 0,0);
這行幫了我,不然每次顯示出來的都是黑底。