使用JavaScript將當前頁面儲存成PDF,支援圖片和文字的儲存
前端開發的朋友們可能會遇到這個需求:將您負責開發的網頁的全部內容,包括文字和圖片,一起儲存成一個PDF檔案。如果採用螢幕截圖的話,預設Windows作業系統的截圖按鈕無法完整擷取超過一螢幕的螢幕內容。
我在網上找了一段時間,蒐集到了一些解決方案,在這裡分享給廣大程式設計師。
這個解決方案包含了兩個步驟,將前端頁面轉化為PDF:
1. 遍歷當前網頁的DOM結構,收集所有DOM樹上每個節點的元素資訊及相應樣式,渲染出canvas影像。這個遍歷和渲染操作封裝在指令碼檔案html2canvas.js裡。
2. 利用一個開源的JavaScript庫,jsPDF,在瀏覽器端用JavaScript生成PDF檔案。PDF的生成邏輯封裝在指令碼檔案jsPdf.debug.js裡。
看看如何在您的前端網頁裡使用這兩個JavaScript檔案。
<script type="text/javascript" src="html2pdf/html2canvas.js"></script>
<script type="text/javascript" src="html2pdf/jsPdf.debug.js"></script>
下面是網頁內容:
<html>
<p>在這裡放一段很長很長的檔案,能觀察到最後生成的PDF會自動分頁。。。。</p>
在您的前端頁面裡畫一個按鈕,用於觸發將當前網頁儲存成PDF檔案的事件。
<button id="renderPdf">儲存整個網頁成PDF</button>
HTML轉PDF的程式碼如下:
如果想下載可以複製貼上的程式碼文字,可以到這個連結下載。 https://github.com/linwalker/render-html-to-pdf
下面可以看看這個解決方案的效果。
點這個按鈕:
這是用JavaScript生成的PDF檔案在本地開啟的效果:
可以看到PDF中的翻頁沒有任何問題。
大家如果想自己體驗一下通過JavaScript進行HTML轉PDF的效果,可以試試我的demo: http://i042416.github.io/FioriODataTestTool2014/WebContent/092_html2pdf.html
這個解決方案最初是一位叫linwalker的程式設計師設計的,下面是他的github連結:
https://github.com/linwalker/render-html-to-pdf
要獲取更多Jerry的原創技術文章,請關注公眾號"汪子熙"或者掃描下面二維碼:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2213926/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 微信H5頁儲存當前頁面為圖片踩坑H5
- 將網站儲存成圖片網站
- 利用Qt將網頁儲存為PDFQT網頁
- Acrobat怎麼批量儲存PDF小圖片?adobe Acrobat一鍵儲存pdf小圖片的技巧BAT
- Acrobat怎麼批次儲存PDF小圖片?adobe Acrobat一鍵儲存pdf小圖片的技巧BAT
- Delphi儲存網頁中的圖片網頁
- 使用canvas儲存網頁為pdf檔案支援跨域Canvas網頁跨域
- 前端js儲存頁面為圖片下載到本地前端JS
- 如何將網頁儲存成mhtml格式網頁HTML
- Activiti 儲存圖片
- 將圖片檔案儲存到Oracle的儲存過程Oracle儲存過程
- 將網頁儲存為圖片形式程式碼例項網頁
- html2canvas:將html的dom變成圖片,並儲存HTMLCanvas
- JavaScript儲存文字資料示例JavaScript
- 利用NODEJS+Puppeteer實現伺服器儲存網頁為圖片和PDFNodeJS伺服器網頁
- Hexo文章圖片儲存選七牛(當然支援MD都可以)Hexo
- 使用error stack 抓取儲存過程的當前SQLError儲存過程SQL
- 阿里雲物件儲存服務,OSS使用經驗總結,圖片儲存,分頁查詢阿里物件
- 一次 H5 「儲存頁面為圖片」 的踩坑之旅H5
- MySQL 支援 emoji 圖示儲存MySql
- asp.net儲存圖片ASP.NET
- 儲存圖片到SD卡SD卡
- Matlab GUI儲存圖片MatlabGUI
- 移動端長按儲存、取消長按儲存圖片
- 將echarts生成的圖表變為圖片儲存起來Echarts
- 用PHP和MySQL儲存和輸出圖片PHPMySql
- 深入解析微信小程式頁面中實現的儲存圖片(附程式碼)微信小程式
- 儲存圖片文字的好幫手——雲脈文件識別
- MATLAB將figure視窗儲存為圖片Matlab
- 使用Python實現網頁中圖片的批次下載和水印新增儲存Python網頁
- 圖的儲存
- 教你如何儲存抖音店鋪的商品圖片,自動儲存主圖、詳情圖
- js實現的將網頁儲存為圖片簡單解釋介紹JS網頁
- Jquery 離開頁面時提示儲存jQuery
- 自動儲存、靜態儲存和動態儲存
- 海量圖片儲存,杉巖分散式物件儲存輕鬆應對分散式物件
- Android——儲存圖片到外部儲存並進行原生分享Android
- 【轉】mysql儲存圖片技術決定:儲存二進位制檔案還是隻儲存圖片相對路徑,圖片放在硬碟上面?MySql硬碟