html頁面根據分辨率縮放,html2Canvas根據不同分辨率,生成pdf內容自適應

根據屏幕大小不同,頁面內容自適應并一頁展示,應該如何實現

// 導出頁面為PDF格式

import html2Canvas from 'html2canvas'

import JsPDF from 'jspdf'

export default{

install (Vue, options) {

Vue.prototype.getPdf = function () {

setTimeout(() => {

var title = this.htmlTitle

let pdfDom_html = document.getElementsByClassName('pdfDom')

let PDF = new JsPDF('', 'pt', 'a4')

var imgArr = new Array();

let scale = 2 //獲取像素密度的方法 (也可以采用自定義縮放比例)

for(var i = 0; i< pdfDom_html.length; i++) {

html2Canvas(pdfDom_html[i], {

useCORS: true,//允許加載跨域的圖片

allowTaint: true,//允許跨域圖片

scale: scale // 添加的scale 參數

}).then(function (canvas) {

let contentWidth = canvas.width

console.log(contentWidth, 'contentWidth')

let contentHeight = canvas.height

console.log(contentHeight, 'contentHeight')

//a4紙的尺寸[595.28,841.89],html頁面生成的canvas在pdf中圖片的寬高

let imgWidth = 595.28

let imgHeight = (592.28 / contentWidth * contentHeight)

console.log(imgHeight, 'imgHeight')

//返回圖片dataURL,參數:圖片格式和清晰度(0-1)

// let pageData = canvas.toDataURL('image/png', 1.0)

var pageData = new Image();

pageData.src = canvas.toDataURL('image/jpeg', 1.0);

imgArr.push(pageData)

if (imgArr.length == pdfDom_html.length) {

for(var j = 0; j < imgArr.length; j++) {

PDF.addImage(imgArr[j].src, 'JPEG', 0, 0, imgWidth, imgHeight)

if (j < imgArr.length - 1) {

PDF.addPage()

}

}

PDF.save(title + '.pdf')

}

})

}

}, 100)

}

}

}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/396716.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/396716.shtml
英文地址,請注明出處:http://en.pswp.cn/news/396716.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【agc002f】Leftmost Ball(動態規劃)

【agc002f】Leftmost Ball&#xff08;動態規劃&#xff09; 題面 atcoder洛谷 題解 我們從前往后依次把每個顏色按順序來放&#xff0c;那么如果當前放的是某種顏色的第一個球&#xff0c;那么放的就會變成\(0\)號顏色&#xff0c;所以無論何時&#xff0c;\(0\)號顏色的數量不…

VS2010中的快捷鍵

一. VS2010中的快捷鍵 1&#xff1a; Ctrl Enter &#xff08;在光標指定位置的上 K C &#xff08;注釋&#xff09; Ctrl E U &#xff08;取消注釋&#xff09;  <>  Ctrl K U &#xff08;取消注釋&#xff09; 5&#xff1a; Tab &#xff08;增加縮進&a…

export function函數傳參_04 js高階函數(惰性函數、柯里化函數、compose函數)和單例設計模式...

高階函數的定義在《javascript設計模式和開發實踐》中是這樣定義的。函數可以作為參數被傳遞&#xff1b;函數可以作為返回值輸出。結合這兩個特點&#xff0c;首先想到的肯定是回調函數&#xff0c;回調函數也是高階函數的一種&#xff0c;除了回調函數&#xff0c;還有很多的…

Javascript構造函數的繼承

僅供學習參考&#xff0c;原文鏈接&#xff1a;http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance.html 今天要介紹的是&#xff0c;對象之間的"繼承"的五種方法。 比如&#xff0c;現在有一個"動物"對象的構造函數。 funct…

python輸入字符串str_python字符串(str)

#value "raitOrEi"#v value.capitalize()#首字母大寫#print(v)#v1 v.casefold()#全部變小寫&#xff0c;不只是英文的&#xff0c;其他語言特殊的大小寫也變換#print(v1)#v2 v.lower()#只是英文變小寫#print(v2)#設置寬度&#xff0c;并將內容居中#20 代指總長度…

html5 audio api 錄音,如何使用HTML5 Web Audio API錄制我的聲音

在webkit瀏覽器上,您可以將get user media api與webkitGetUserMedia一起使用 – 如html5rocks所示.如果你想用你的聲音來創建javascript事件(例如控制屏幕上的對象)你必須分析傳入的聲音(例如事件1的高頻率 – 事件2的低頻率,語音分析要復雜得多,見下文)另外,還有chrome的’x-w…

修改密碼

在updateservlet.java中寫了方法&#xff0c;修改用戶密碼&#xff0c;代碼不成功求大神指教&#xff0c;代碼如下&#xff1a; updateadminpw.jsp <% page contentType"text/html;charsetgb2312" pageEncoding"gb2312" %><% taglib uri"ht…

MlLib--邏輯回歸筆記

批量梯度下降的邏輯回歸可以參考這篇文章&#xff1a;http://blog.csdn.net/pakko/article/details/37878837 看了一些Scala語法后&#xff0c;打算看看MlLib的機器學習算法的并行化&#xff0c;那就是邏輯回歸&#xff0c;找到package org.apache.spark.mllib.classification下…

mysql相關命令操作

2019獨角獸企業重金招聘Python工程師標準>>> 遠程連接容器中的mysql&#xff1a;mysql -h 192.168.5.116 -P 3306 -u root -p123456 啟動mysql容器&#xff1a; $ sudo docker pull mysql:5.6.35 $ sudo docker run --name mysql -p 12345:3306 -e MYSQL_ROOT_PASSW…

html實體注冊商標,html 注冊商標,html 注冊商標代碼

html中注冊的頁面用什么標簽寫好對于html中的注冊頁面&#xff0c;策朋專業辦理商標注冊、專利申請、版權登記保護&#xff0c;需要一個表格。使用標簽&#xff0c;輸入和按鈕標簽來組合成就。使用html作為注冊頁面。實際上&#xff0c;只要您能達到期望的效果&#xff0c;它的…

java已知一個二叉樹_#二叉樹復習#

#二叉樹復習#目錄滿二叉樹完全二叉樹平衡二叉樹二叉樹的主要性質--二叉樹的度--二叉樹的深度計算二叉樹的遍歷其他符號變量結點總數深度度為0的結點數/葉子結點數度為1的結點數度為2的結點數什么是滿二叉樹&#xff1f;二叉樹每層的結點數為。滿二叉樹總結點數&#xff1a;。圖…

hashtable - hashmap

http://www.importnew.com/24822.html轉載于:https://www.cnblogs.com/qinqiu/p/9711147.html

java 反射機制_基礎篇:深入解析JAVA反射機制

反射的概念java 的放射機制&#xff1a;在程序運行時&#xff0c;程序有能力獲取一個類的所有方法和屬性&#xff1b;并且對于任意一個對象&#xff0c;可以調用它的任意方法或者獲取其屬性通俗解析&#xff1a;java 文件需要編譯成. class 文件才能被 jvm 加載使用, 對象的. c…

構建之法閱讀筆記01

本學期閱讀計劃有兩個&#xff0c;一個是《構建之法》&#xff0c;另一個是《大道至簡》。 在快速閱讀構建之法后&#xff0c;我想提一下幾個問題&#xff1a; 1、軟件程序軟件工程&#xff0c;那么只會軟件工程是怎樣具體詳細的將程序變成合格的軟件的&#xff1f; 2、效能分析…

html div float center,跨瀏覽器實現float:center

跨瀏覽器實現float:center互聯網 發布時間&#xff1a;2008-10-17 19:26:11 作者&#xff1a;佚名 我要評論原文&#xff1a;http://www.macji.com/blog/article/to-achieve-cross-browser-css-float-center/to-achieve-cross-browser-css-float-center/我們都知道float…

博弈論中:納什均衡、純策略納什均衡、混合策略納什均衡、占優策略

納什均衡 納什均衡是由約翰福布斯納什&#xff08;John Forbes Nash&#xff09;在20世紀50年代提出的博弈論概念&#xff0c;用于描述博弈中的一種穩定狀態。在納什均衡狀態下&#xff0c;每個參與者都假定其他參與者的策略是已知的&#xff0c;他們選擇的策略是最優的&#…

工具_HBuilder使用快捷方式

HBuilder常用快捷鍵大概共9類&#xff08;【4 13 3】文件、編輯、插入&#xff1b;【4 9 8】選擇、跳轉、查找&#xff1b;【1 1 6】運行、工具、視圖&#xff09; 1.文件(4) 新建 Ctrl N 關閉 Ctrl F4 全部關閉 Ctrl Shift F4 屬性 Alt Enter 2.編輯(13) 激活代碼助…

oracle左連接沒用_一周零基礎學完Oracle數據庫第三天02

四、 多表查詢1 什么是多表查詢多表查詢&#xff1a;當查詢的數據并不是來源一個表時&#xff0c;需要使用多表鏈接操作完成查詢。根據 不同表中的數據之間的關系查詢相關聯的數據。多表鏈接方式&#xff1a; 內連接&#xff1a;連接兩個表&#xff0c;通過相等或不等判斷鏈接列…

weblogic啟動項目報錯找不到類_啟動類報錯是經常出現的事但是單一的從一個地方找原因會越找越錯...

Error starting ApplicationContext. To display the conditions report rerun your application with debug enabled.當我們看到這個報錯的時候有的說是jar包重復&#xff0c;有的說是Controller包和Application包處于平行位置&#xff0c;還有的覺得是RequestMapping的valu…

fis

fis3實時刷新 npm install -g fis3 進入相關目錄 發布&#xff1a; fis3 release 啟動&#xff1a; fis3 server start // 服務啟動后&#xff0c;會一直存在&#xff0c;重啟或者fis3 server stop 才會關閉服務 自動刷新 fis3 release -wL關閉服務 fis3 server stop …