三级全黄做爰电影_夫妻之间那些事_啊啊啊啊好爽视频_国产精品xxxx喷水欧美_色一情一乱一伦麻豆_国产精品美乳一区二区免费_亚洲综合av在线在线播放_人与禽伦性了_黄色软件色多多_av在线免费观看网址

證書認(rèn)證網(wǎng)站通過JSPDF把內(nèi)容導(dǎo)出為PDF
發(fā)表人:金馬 | 2022-12-09

升級開發(fā)的一個寶石證書網(wǎng)站需要把證書導(dǎo)出PDF文檔供用戶下載

先看導(dǎo)出需導(dǎo)出的內(nèi)容部分:

image.png

客戶需要把這部分添加可以導(dǎo)出PDF文檔功能

開發(fā)此功能,可以使用后端PHP實現(xiàn),也可以使用js實現(xiàn)

在這個網(wǎng)站使用js導(dǎo)出PDF更加合適。

有插件使用當(dāng)然使用插件,這次使用jspdf插件。

先下載jspdf插件,這個這里就不放出來了,首先在需導(dǎo)出的頁面添加導(dǎo)出按鈕,HTML代碼如下:

image.png

按鈕css樣式使用Bootstrap,這里不貼出來了,按鈕最終效果如下:

image.png

然后引入下載好的JS插件,代碼如下:

image.png

自己代碼的話,目錄需對應(yīng)一致

然后根據(jù)插件編寫導(dǎo)出PDF文檔代碼,這里需要添加分頁控制,代碼如下:

$("#downpdf").click(function() {
				var now = new Date();
                var year = now.getFullYear(); //得到年份
                var month = now.getMonth();//得到月份
                var date = now.getDate();//得到日期
                var day = now.getDay();//得到周幾
                var hour = now.getHours();//得到小時
                var minu = now.getMinutes();//得到分鐘
                var sec = now.getSeconds();//得到秒
                var MS = now.getMilliseconds();//獲取毫秒
                month = month + 1;
                if (month < 10) month = "0" + month;
                if (date < 10) date = "0" + date;
                if (hour < 10) hour = "0" + hour;
                if (minu < 10) minu = "0" + minu;
                if (sec < 10) sec = "0" + sec;
                if (MS < 100) MS = "0" + MS;
                this.time = year + "-" + month + "-" + date + " " + hour + ":" + minu + ":" + sec
                var target = document.getElementById("pdf-container");
                target.style.background = "#FFFFFF";
                html2canvas(target).then((canvas) => {
                    console.log(canvas)
                    var contentWidth = canvas.width;
                    var contentHeight = canvas.height;
                    //一頁pdf顯示html頁面生成的canvas高度;
                    var pageHeight = contentWidth / 592.28 * 841.89;
                    //未生成pdf的html頁面高度
                    var leftHeight = contentHeight;
                    //頁面偏移
                    var position = 0;
                    //a4紙的尺寸[595.28,841.89],html頁面生成的canvas在pdf中圖片的寬高
                    var imgWidth = 595.28;
                    var imgHeight = 592.28/contentWidth * contentHeight;
                    var pageData = canvas.toDataURL('image/jpeg', 1.0);
                    var pdf = new jsPDF('', 'pt', 'a4');
                    //有兩個高度需要區(qū)分,一個是html頁面的實際高度,和生成pdf的頁面高度(841.89)
                    //當(dāng)內(nèi)容未超過pdf一頁顯示的范圍,無需分頁
                    console.log(leftHeight,pageHeight)
                    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 > 1) {
                              pdf.addPage();
                            }
                        }
                    }
                    let name =  + '.pdf'
                    pdf.save(name);
                }); 
    });

導(dǎo)出的文件名稱是以證書編號命名,導(dǎo)出為A4紙張大小。

導(dǎo)出的效果PDF效果圖如下:

image.png

演示鏈接地址:

https://www.gra.pub/search.html?q=98288840&submit=+


我來說兩句(0)
:zui: :wink: :twisted: :roll: :oops: :mrgreen: :love: :lol: :jidong: :idea: :han:
發(fā)表評論(Ctrl+Enter)
—— 金馬科技公眾號 ——
十二年 行業(yè)積累

砥礪前行路上,有您關(guān)注,相聚相研共話成長!

如有意向,請與我們聯(lián)系

辦公電話:0774-3838278 / QQ:154727262 / 微信:wztmma