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

首頁 > 開發 > JavaScript > 正文

用js實現html轉pdf

2020-03-24 18:14:09
字體:
來源:轉載
供稿:網友
這次給大家帶來用js實現html轉pdf,用js實現html轉pdf的注意事項有哪些,下面就是實戰案例,一起來看一下。

于是做了個小案例來測試這個功能。

<body>    <!-- PDF -->    <p class="bb" id="ctn">        <p class="anliu" id="anliu">生成PDF</p>      </p></body><script src="../../Scripts/aps/html2canvas.js"></script><script src="../../Scripts/aps/jsPdf.debug.js"></script>

js寫法

window.onload =function(){var downPdf = document.getElementById("anliu");downPdf.onclick = function() {   html2canvas(document.body, {        onrendered: function(canvas) {                //返回圖片URL,參數:圖片格式和清晰度(0-1)                  var pageData = canvas.toDataURL('image/jpeg', 1.0);                  //方向默認豎直,尺寸ponits,格式a4【595.28,841.89]                  var pdf = new jsPDF('', 'pt', 'a4');                  //需要dataUrl格式                  pdf.addImage(pageData, 'JPEG', 0, 0, 595.28, 592.28/canvas.width * canvas.height );                  pdf.save('tup.pdf');                    }    });}}

1,寫完一測試看,報了個錯誤Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported。 于是我換一種方法,把所有圖片刪掉測試,再點擊生成pdf,結果是沒問題,這樣看來報錯的原因是圖片引起的。

一查資料是因為圖片和頁面所在域不同,出現跨域傳輸的問題,說白了就是要在服務器環境下訪問。于是在服務器環境下測試沒問題,成功生成pdf文件。

2,html2canvas.js截圖不全的問題

把這個測試實現的功能放到項目里面去,遇到了一個新問題,生成的pdf只有頁面窗口可見的區域,有滾動條的下面沒有生成出來。

于是又找了一下,html2canvas 截取圖片不支持高度,會造成只可以截到瀏覽器可見的,如果出現滾動條則不會截全,所以造成jsPdf.js根據截圖生成的pdf出現不全的問題。既然是html2canvas截圖的原因引起的那就從這里來解決。

網上看了下別人寫的案例,結合自己測試+分析發現,如果截取是body的這個層級,而剛好body設置了overflow: hidden;那超出的部分是永遠截取不到的,因為這個節點的dom高就是窗口可見的高度,并不包含滾動條多出來的部分。

于是我把滾動條這一節點的樣式,height: auto;讓高度給子元素去撐開。 再往上把父節點都去掉overflow: hidden;去掉元素不可見。

看一下引入jquery后,在項目中重新寫的js

        var pdfcc = $('.pdf-cc');        pdfcc.on('click', function (event) {            html2canvas($("#bb-pdf-ctn"), {                allowTaint: true,                height: $("#bb-pdf-ctn").outerHeight(),                onrendered: function (canvas) {                    //返回圖片URL,參數:圖片格式和清晰度(0-1)                    var pageData = canvas.toDataURL('image/jpeg', 1.0);                    //方向默認豎直,尺寸ponits,格式a4【595.28,841.89]                    var pdf = new jsPDF('', 'pt', 'a4');                    //需要dataUrl格式                    pdf.addImage(pageData, 'JPEG', 0, 0, 595.28, 592.28 / canvas.width * canvas.height);                    pdf.save('pdf.pdf');                }            });        });

3,html2canvas設置了2個新的參數

允許跨域:allowTaint: true,

設置高度:height: $("#bb-pdf-ctn").outerHeight(),

高度就是滾動條這個節點的高度。

OK,就這樣搞定滾動條區域截圖不全的問題了。

相信看了本文案例你已經掌握了方法,更多精彩請關注 其它相關文章!

推薦閱讀:

text-align如何實現兩端對齊

JavaScript的繼承與原型鏈

以上就是用js實現html轉pdf的詳細內容,更多請關注 其它相關文章!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美黑人xxxⅹ高潮交| 国产91九色视频| 自拍偷拍亚洲精品| 7777免费精品视频| 亚洲第一视频在线观看| 欧美最近摘花xxxx摘花| 精品日韩视频在线观看| 国产原创欧美精品| 日韩中文字幕在线看| 日韩av在线网页| 久久国产精彩视频| 18久久久久久| 亚洲精品成人久久| 国产有码一区二区| 91麻豆国产精品| 98精品国产高清在线xxxx天堂| 国产激情久久久| 91国内精品久久| 一区二区三区视频免费| 亚洲永久在线观看| 国产精品揄拍一区二区| 26uuu国产精品视频| 国产精品久久久91| 成人免费视频网| 久久精品久久久久久| 亚洲一区二区三区毛片| 国产精品国产三级国产专播精品人| 91老司机精品视频| 亚洲精品国精品久久99热| 久久久久国产精品免费网站| 国产日韩欧美在线| 日韩电视剧在线观看免费网站| 91国产精品电影| 韩曰欧美视频免费观看| 91亚洲国产成人精品性色| 亚洲成色777777在线观看影院| 欧美综合国产精品久久丁香| 欧美日韩国产精品| 国产欧美日韩中文字幕| 日本道色综合久久影院| 国产一区二区日韩| 成人国内精品久久久久一区| 欧美综合第一页| 日韩av高清不卡| 欧美在线xxx| 欧美性少妇18aaaa视频| 青青草成人在线| 亚洲自拍偷拍在线| 日韩美女av在线免费观看| 亚洲free嫩bbb| 福利一区福利二区微拍刺激| 亚洲男子天堂网| 久久久国产视频91| 国产精品视频久久| 亚洲精品色婷婷福利天堂| 欧美激情一二三| 精品国产一区二区三区久久狼5月| 欧美性生交xxxxx久久久| 亚洲国产精品电影| 亚洲精品自产拍| 丝袜美腿精品国产二区| 欧美成人激情在线| 国产精品久久网| xvideos亚洲| 大荫蒂欧美视频另类xxxx| 国产在线观看精品一区二区三区| 亚洲人成网站777色婷婷| 欧美精品激情视频| 最新国产成人av网站网址麻豆| 2019最新中文字幕| 92版电视剧仙鹤神针在线观看| 国产一区二区视频在线观看| 日韩av电影手机在线| 欧美成人免费在线观看| 欧美一级黑人aaaaaaa做受| 久久精品99久久久久久久久| 国产精品久久久久久久久久久久久久| 国产成人久久久| 伊人久久大香线蕉av一区二区| 人妖精品videosex性欧美| 91福利视频网| 成人国产亚洲精品a区天堂华泰| 国产精品九九九| 成人伊人精品色xxxx视频| 福利微拍一区二区| 欧美一级高清免费| 色综合视频一区中文字幕| 国产不卡在线观看| 日韩最新av在线| 国产一区二区三区在线观看网站| 97碰碰碰免费色视频| 中文字幕综合一区| 久久成人国产精品| 日韩av电影院| 欧美性视频精品| 日韩av免费看| 亚洲国产中文字幕久久网| 亚洲乱码国产乱码精品精天堂| 欧美国产日韩一区二区| 成人黄色免费在线观看| 日韩麻豆第一页| 国产日韩欧美视频| 97久久久久久| 国产视频精品va久久久久久| 国产精品扒开腿做爽爽爽视频| 久久久久中文字幕2018| 欧美一区亚洲一区| 成人性生交大片免费看视频直播| 国产一区二区日韩| 久久精品国产v日韩v亚洲| 久久久久久国产三级电影| 91sao在线观看国产| 久久精品国产精品| 亚洲美女视频网| 亚洲va欧美va国产综合久久| 亚洲毛片在线免费观看| 国产一区二区日韩精品欧美精品| 国产亚洲欧美aaaa| 久久精品国产96久久久香蕉| 国产精品国产福利国产秒拍| 国产免费一区二区三区在线能观看| 91在线播放国产| 久久九九有精品国产23| 中文字幕精品www乱入免费视频| 在线精品高清中文字幕| 欧美一级电影久久| 久热国产精品视频| 97精品视频在线播放| 亚洲精品女av网站| 亚洲嫩模很污视频| 亚洲综合精品伊人久久| 亚洲老司机av| 成人观看高清在线观看免费| 久久免费高清视频| 成人激情黄色网| 日韩美女视频中文字幕| 久热国产精品视频| 在线看福利67194| 91国在线精品国内播放| 久久久精品在线| 亚洲精品中文字幕有码专区| 国产精品久久久91| 国产成人免费av| 国产脚交av在线一区二区| 久久伊人色综合| 久久综合色88| 中文字幕日韩有码| 成人精品福利视频| 亚洲综合最新在线| 超在线视频97| 97超级碰在线看视频免费在线看| 成人啪啪免费看| 中国china体内裑精亚洲片| 精品露脸国产偷人在视频| 欧美日韩在线影院| 欧美激情在线观看| 欧美日韩国产一区二区三区| 91干在线观看| 国产xxx69麻豆国语对白| 不卡中文字幕av| 日韩av手机在线看| 欧美精品久久久久久久久| 精品国产91乱高清在线观看| 亚洲精品电影久久久|