使用javascript生成PDF的類庫 – jsPDF
阿新 • • 發佈:2019-01-27
曾經生成PDF都是伺服器端程式碼的專利,在今天的這篇文章中,我們將介紹一個javascript類庫 - jsPDF,使用它能夠幫助你使用前端指令碼生成PDF檔案,是不是很棒,試試吧!
jsPDF支援不同型別的PDF檔案格式,包括:文字,數字,圖形,圖片,同時你可以自由的編輯標題或者其它型別元素。
支援互動的內容製作,例如,你可以輸入文字或者數字,然後jsPDF幫助生成最後的PDF內容。
支援現代瀏覽器,如果是老式瀏覽器的話,可以很好的使用flash來實現相容。不過貌似支援Firefox不是很好,如果要檢視演示,使用Chrome吧!
下面做幾個簡單的demo
Html程式碼- <script type="text/javascript" src="jspdf.min.js"></script>
並不需要依賴庫,只要引入jspdf.js(或壓縮的jspdf.min.js)即可。
demo1:生成簡單的文字
Html程式碼
Html程式碼- <a href="javascript:void(0)" onclick="createAndOutput()">生成並輸出</a>
- <br/>
-
<a href="javascript:void(0)" onclick="createAndDownload()"
Js程式碼
Js程式碼- <script type="text/javascript">
- //生成並輸出
- function createAndOutput(){
- var doc = new jsPDF();
- doc.text(20, 20, 'Hello world!');
- doc.text(20, 30, 'This is client-side Javascript, pumping out a PDF.');
- doc.addPage(); //生成下一頁
-
doc.text(20, 20, 'Do you like that?'
- doc.output('datauri');
- }
- //生成並下載
- function createAndDownload(){
- var doc = new jsPDF();
- doc.text(20, 20, 'Hello world!');
- doc.text(20, 30, 'This is client-side Javascript, pumping out a PDF.');
- doc.addPage(); //生成下一頁
- doc.text(20, 20, 'Do you like that?');
- doc.save('Test.pdf');
- }
- </script>
demo2生成圖片
Html程式碼
Html程式碼- <a href="javascript:void(0)" onclick="createAndDownload()">生成並下載</a>
Js程式碼
Js程式碼- <script type="text/javascript">
- //生成並下載
- function createAndDownload(){
- var doc = new jsPDF();
- doc.setFontSize(40);
- doc.text(35, 25, "jsPDF image demo");
- var imgAsDataURL = createDateUrl();
- doc.addImage(imgAsDataURL, 'JPEG', 15, 40, 180, 180);
- doc.save('Test.pdf');
- }
- //利用html5的畫布功能生成簡單的矩形
- function createDateUrl(){
- var imgCanvas = document.createElement("canvas");
- if (imgCanvas.getContext) {
- alert("您的瀏覽器支援 canvas 標籤");
- } else {
- alert("您的瀏覽器不支援 canvas 標籤");
- }
- imgContext = imgCanvas.getContext("2d");
- imgContext.fillRect(20, 20, 100, 100);
- return imgCanvas.toDataURL("image/jpeg");
- }
- </script>
由於jsPDF處理的圖片資料為DataURL的,你可通過html5的畫布功能進行轉化下,之後在通過jsPDF的addImage方法向PDF中插入圖片。