亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > HTML > 正文

詳解使用canvas保存網頁為pdf文件支持跨域

2024-08-26 00:21:10
字體:
來源:轉載
供稿:網友

前言

之前上一篇隨筆說了Canvas截圖網頁為圖片,下來個新需求,把網頁截圖后保存為PDF文件供用戶下載。

使用canvas保存網頁為pdf文件支持跨域

正文

需求:用戶點擊下載,將頁面保存為PDF文件并下載。

思路:繼續使用Canvas截圖后將畫布內容轉換為pdf文件。

首先我們需要引入js文件jspdf.debug.js 下載路徑 https://github.com/MrRio/jsPDF

引入canvas的js文件,js文件獲取地址官網主頁:http://html2canvas.hertzen.com/

<script type="text/javascript" src="js/html2canvas.js"></script><script type="text/javascript" src="js/html2canvas.min.js"></script><script type="text/javascript" src="js/jspdf.debug.js"></script>

div按鈕代碼

 <div id="down_pdf">導出為PDF按鈕</div> <div class="sta-main">需要獲取為PDF的div</div>

jsp代碼

<script type="text/javascript">/* var downPdf = document.getElementById("down_pdf"); */var downPdf = document.getElementById("down_pdf");$("#down_pdf").on("click", function() { var canvas2 = document.createElement("canvas"); let _canvas = document.querySelector('.sta-main'); //獲取寬高 var w = parseInt(window.getComputedStyle(_canvas).width); var h = parseInt(window.getComputedStyle(_canvas) .height); //將canvas畫布放大2倍,然后盛放在小的容器內,處理模糊 canvas2.width = w * 2; canvas2.height = h * 2; canvas2.style.width = w + "px"; canvas2.style.height = h + "px"; var context = canvas2.getContext("2d"); //處理偏移 context.scale(1.5, 1.5); //修改背景顏色,默認是黑色 $('.sta-main').css("background", "#fff") html2canvas( _canvas, { //處理pdf跨域獲取不到跨域信息問題 taintTest : false, useCORS : true, allowTaint : false,  canvas : canvas2, dpi: 172,//導出pdf清晰度 onrendered: function (canvas) { var contentWidth = canvas.width; var contentHeight = canvas.height; //一頁pdf顯示html頁面生成的canvas高度; var pageHeight = contentWidth / 592.28 * 841.89; //未生成pdf的html頁面高度 var leftHeight = contentHeight; //pdf頁面偏移 var position = 0; //html頁面生成的canvas在pdf中圖片的寬高(a4紙的尺寸[595.28,841.89]) var imgWidth = 595.28; var imgHeight = 592.28 / contentWidth * contentHeight; var pageData = canvas.toDataURL('image/jpeg', 1.0); var pdf = new jsPDF('', 'pt', 'a4'); //有兩個高度需要區分,一個是html頁面的實際高度,和生成pdf的頁面高度(841.89) //當內容未超過pdf一頁顯示的范圍,無需分頁 if (leftHeight < pageHeight) { pdf.addImage(pageData, 'JPEG', 0, 0, imgWidth, imgHeight); } else { while (leftHeight > 0) { pdf.addImage(pageData, 'JPEG', 0, position, imgWidth, imgHeight) leftHeight -= pageHeight; position -= 841.89; //避免添加空白頁 if (leftHeight > 0) { pdf.addPage(); } } } pdf.save('PDF的名字.pdf'); } }) $('.sta-main').css("background", "")})</script> 

此次網頁改為PDF,與上次截圖網頁為PNG,使用同一種技術,都是先使用Canvas截圖畫布后轉格式。

同樣也有偏移、模糊、跨域等問題,使用之前的代碼來處理。

轉換pdf會讓背景色變為黑色使用css樣式改一下背景色就可以了。

完美轉換為pdf。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到HTML教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
自拍偷拍亚洲区| 亚洲精品视频久久| 国产成人精品999| 精品国产福利在线| 亚洲精品女av网站| 欧美精品久久久久久久| 亚洲一区二区三区视频播放| 亚洲一区二区久久| 亚洲欧美国产va在线影院| 欧美午夜美女看片| 日韩电影在线观看中文字幕| 91国产精品91| 最好看的2019的中文字幕视频| 久久久视频精品| 91久久久久久国产精品| 日韩美女主播视频| 美女国内精品自产拍在线播放| 亚洲开心激情网| 亚洲国产精品国自产拍av秋霞| 欧美激情在线一区| 久久久免费观看| 亚洲自拍小视频免费观看| 中文国产亚洲喷潮| 精品网站999www| 国产成人一区二| 国产视频精品一区二区三区| 欧美成人亚洲成人| 国产精品自拍小视频| 精品久久久久久国产91| 欧美另类高清videos| 亚洲最大福利视频网站| 国产精品极品美女在线观看免费| 97人洗澡人人免费公开视频碰碰碰| 欧美日韩精品在线视频| 最近2019中文字幕第三页视频| 国产区精品视频| 亚洲一区二区在线| 日韩精品免费电影| 97香蕉超级碰碰久久免费的优势| 亚洲精品视频在线播放| 亚洲精品久久久久中文字幕二区| 欧美日韩国产一中文字不卡| 精品在线欧美视频| 欧美专区在线播放| 成人免费直播live| 久久99青青精品免费观看| 亚洲精品一区二区久| 国产精品91免费在线| 中文字幕精品在线| 日韩精品在线免费| 欧美在线视频网站| 欧美精品激情在线观看| 国产不卡一区二区在线播放| 日产精品99久久久久久| 91在线视频一区| 国产精品一区二区三区在线播放| 在线观看欧美成人| 97精品在线视频| 亚洲综合日韩在线| 成人精品一区二区三区电影黑人| 一区二区三区四区在线观看视频| 成人久久一区二区| 成人av在线天堂| 欧美日韩亚洲成人| 久久久久久香蕉网| 中文字幕视频在线免费欧美日韩综合在线看| 久久香蕉国产线看观看av| 亚洲视频电影图片偷拍一区| 亚洲成av人片在线观看香蕉| 97色在线观看| 欧美日韩国产中文字幕| 国产亚洲欧美另类中文| 亚洲综合日韩中文字幕v在线| 国产69精品久久久久久| 乱亲女秽乱长久久久| 日韩精品在线第一页| 久久久久五月天| 欧美中文字幕在线观看| 日本精品一区二区三区在线播放视频| 国产综合在线视频| 国产91精品高潮白浆喷水| 欧美成人午夜剧场免费观看| 日本精品性网站在线观看| 最新中文字幕亚洲| 精品久久久视频| 亚洲综合在线播放| 亚洲最大成人网色| 美女福利精品视频| 亚洲女同精品视频| 亚洲欧美激情一区| 色噜噜久久综合伊人一本| 日本不卡免费高清视频| 国产精品欧美一区二区| 亚洲白虎美女被爆操| 国产mv免费观看入口亚洲| 伊人久久久久久久久久| 欧美激情久久久久| 精品美女永久免费视频| 最新国产成人av网站网址麻豆| 国产免费亚洲高清| 欧美午夜激情视频| 成人精品aaaa网站| 国产精品成人免费视频| 成人疯狂猛交xxx| 国产精品视频免费在线| 亚洲日本成人女熟在线观看| 91精品在线播放| 久久久亚洲福利精品午夜| 欧美日韩国产综合视频在线观看中文| 国产一区二区欧美日韩| 欧美一级在线播放| 亚洲丁香久久久| 91丨九色丨国产在线| 国产不卡一区二区在线播放| 日本不卡高字幕在线2019| 中文字幕综合在线| 亚洲精品第一国产综合精品| 欧美疯狂做受xxxx高潮| 国产综合在线视频| 精品毛片网大全| 久久久精品中文字幕| 色综合91久久精品中文字幕| 精品久久久香蕉免费精品视频| 国产日韩欧美在线看| 亚洲精品免费网站| 亚洲精品一区二区久| 日本欧美国产在线| 欧美一区亚洲一区| 91精品一区二区| 中文字幕日韩免费视频| 欧美性开放视频| 黑人与娇小精品av专区| 亚洲日本成人女熟在线观看| 性色av一区二区三区在线观看| 欧美日韩久久久久| 在线看欧美日韩| 国产精品va在线播放| 亚洲电影免费观看高清| 在线性视频日韩欧美| 欧美乱妇高清无乱码| 91免费看片在线| 91精品国产91久久久久| 国产suv精品一区二区| 亚洲一区国产精品| 久久久精品国产亚洲| 亚洲电影免费观看高清完整版在线观看| 亚洲一级黄色片| 97在线免费视频| 国产精品美女www爽爽爽视频| 亚洲欧美一区二区三区在线| 国产精品高潮呻吟视频| 中文字幕在线看视频国产欧美| 亚洲黄色有码视频| 激情懂色av一区av二区av| 国产精品观看在线亚洲人成网| 午夜精品一区二区三区在线| 日韩免费在线免费观看| 欧美黑人视频一区| 国产一区二区丝袜高跟鞋图片| 欧美成人精品h版在线观看| 日韩成人性视频| 538国产精品一区二区免费视频| 国产日韩中文在线| 中文字幕久热精品在线视频|