国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Javascript實現html轉pdf高清版(提高分辨率)

2024-05-06 15:44:40
字體:
來源:轉載
供稿:網友

網上一些關于js實現html轉pdf的文章大部分最終轉成的PDF都不夠清晰,今天為大家介紹如何提高js實現html轉pdf的清晰度

引入js文件

https://cdn.bootcss.com/jquery/3.4.1/jquery.js

https://cdn.bootcss.com/jspdf/1.5.3/jspdf.min.js

https://cdn.bootcss.com/html2canvas/0.5.0-alpha2/html2canvas.min.js

注意事項:

1.生成的pdf中,dom元素間距異常;

2.提高分辨率后,生成的圖片有偏差;

html語句:

<div id="demo"> ...</div> 

JS代碼:

download(){ var element = $("#demo"); // 這個dom元素是要導出pdf的div容器 var w = element.width(); // 獲得該容器的寬 var h = element.height(); // 獲得該容器的高 var offsetTop = element.offset().top; // 獲得該容器到文檔頂部的距離 var offsetLeft = element.offset().left; // 獲得該容器到文檔最左的距離 var canvas = document.createElement("canvas"); var abs = 0; var win_i = $(window).width(); // 獲得當前可視窗口的寬度(不包含滾動條) var win_o = window.innerWidth; // 獲得當前窗口的寬度(包含滾動條) if(win_o>win_i){  abs = (win_o - win_i)/2; // 獲得滾動條長度的一半 } canvas.width = w * 2; // 將畫布寬&&高放大兩倍 canvas.height = h * 2; var context = canvas.getContext("2d"); context.scale(2, 2); context.translate(-offsetLeft-abs,-offsetTop);  // 這里默認橫向沒有滾動條的情況,因為offset.left(),有無滾動條的時候存在差值,因此   // translate的時候,要把這個差值去掉 html2canvas(element).then(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; //頁面偏移 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'); //有兩個高度需要區分,一個是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');   })}

更多關于Javascript將html轉成pdf的文章請大家點擊下面的相關鏈接

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 柳江县| 南郑县| 石阡县| 当雄县| 福清市| 鲁甸县| 灵山县| 阿勒泰市| 惠水县| 桦甸市| 宜州市| 宣武区| 教育| 宝丰县| 台北县| 图片| 祁阳县| 广宁县| 万盛区| 延庆县| 德化县| 石屏县| 昔阳县| 开远市| 泰来县| 甘肃省| 奉化市| 历史| 友谊县| 安平县| 灌南县| 万州区| 云梦县| 鱼台县| 姚安县| 忻城县| 峨眉山市| 阜城县| 承德市| 上栗县| 即墨市|