在網(wǎng)頁(yè)中,我們經(jīng)常需要顯示PDF格式的文檔,而當(dāng)我們需要對(duì)這些文檔進(jìn)行打印時(shí),使用jQuery可以很方便地實(shí)現(xiàn)。下面我們來(lái)了解一下如何使用jQuery讀取PDF文件并打印。
$(document).ready(function(){ //獲取PDF文件路徑 var pdfUrl = "example.pdf"; //使用PDF.js庫(kù)進(jìn)行加載 PDFJS.getDocument(pdfUrl).then(function(pdf) { //獲取文檔中的所有頁(yè)面 var pages = []; for(var i = 1; i <= pdf.numPages; i++) { pages.push(pdf.getPage(i)); } //渲染頁(yè)面并打印 Promise.all(pages).then(function(pages) { var printData = []; for(var i = 0; i < pages.length; i++) { //解析頁(yè)面數(shù)據(jù) var canvas = document.createElement('canvas'); var viewport = pages[i].getViewport(1.0); canvas.height = viewport.height; canvas.width = viewport.width; var context = canvas.getContext('2d'); var task = pages[i].render({ canvasContext: context, viewport: viewport }).promise; printData.push(task); } //等待頁(yè)面數(shù)據(jù)加載完成后打印 Promise.all(printData).then(function(){ //獲取打印對(duì)象 var printWindow = window.open("","打印預(yù)覽",""); printWindow.document.open(); printWindow.document.write('<html><body><div id="content"></div></body></html>'); printWindow.document.close(); //將渲染出的頁(yè)面寫(xiě)入打印窗口中 for(var i = 0; i < pages.length; i++){ var imgData = document.createElement('img'); imgData.src = canvas.toDataURL("image/png"); imgData.style.width = "100%"; printWindow.document.getElementById('content').appendChild(imgData); } //打印窗口打印并關(guān)閉 printWindow.print(); printWindow.close(); }); }); }); });
以上就是使用jQuery讀取PDF文件并進(jìn)行打印的代碼實(shí)現(xiàn),首先通過(guò)PDF.js加載PDF文件,然后解析出所有的頁(yè)面并渲染出來(lái),最后將渲染出的頁(yè)面寫(xiě)入打印窗口中,實(shí)現(xiàn)打印功能。