天天看點

jsPDF,生成pdf檔案的助手

jsPDF是一個強大的基于HTML5的PDF生成工具,許多公司需要用它來生成pdf報表。

我也是昨天才了解到它,是以我對于jspdf也是一知半解,在這裡我歸納兩種我覺得比較實用的生成方法。

連結位址http://mrrio.github.io/

首先,你必須得擁有這個插件

jsPDF,生成pdf檔案的助手

這是練習這個功能所需要的js檔案,但是我所歸納的兩種隻需要以下三種

jsPDF,生成pdf檔案的助手
jsPDF,生成pdf檔案的助手

如果有找不到下載下傳位址的,可以加我百度雲我發給你==>國服第一莫節操

jsPDF,生成pdf檔案的助手

第一種:HTML

function exportPdfHtml(){

var doc = new jsPDF();

// We'll make our own renderer to skip this editor

var specialElementHandlers = {

'#editor': function(element, renderer){

return true;

}

};

// All units are in the set measurement for the document

// This can be changed to "pt" (points), "mm" (Default), "cm", "in"

doc.fromHTML($('#bestfizz').get(0), 15, 15, {

'width': 170, 

'elementHandlers': specialElementHandlers

});

document.getElementById("iframe123").src = doc.output('datauristring');

}

顧名思義就是直接将HTML頁面導出成PDF檔案,上述代碼的功能為 将一個标簽id="bestfizz"的内容導出成PDF

最後一行代碼為在目前頁面的iframe上将其顯示出來,如果你想直接下載下傳的話,使用doc.save();

這種方法雖然能直接将HTML頁面内容導出成PDF,但會丢失其原有樣式,比如你的表格table,你的css,不過網上已經有方法彌補,在這我就不細寫,大家找度娘。

第二種:圖檔

function exportPdfImage(){

        html2canvas($('#bestfizz'), {  

        height:5000,  

        onrendered: function(canvas) {           

            var imgData = canvas.toDataURL('images');  

            var doc = new jsPDF('p', 'px','a3');  

            //數字屬性為位置拉伸

            doc.addImage(imgData, 'PNG', 10, 0,0,0);  

            doc.save();

        }  

    });  

}

這種是将頁面轉為圖檔再将其儲存為PDF檔案,上述代碼的功能為将id="bestfizz"範圍内的内容轉換成圖檔并下載下傳為PDF

這種方法比較硬性,不夠靈活,其優缺點大家也能想到。

以上為個人筆記,都為皮毛,歡迎指錯以便共同學習,接下來我也會更加深入了解jsPDF。