国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當前位置: 首頁 > news >正文

公司 做網(wǎng)站推廣信息發(fā)布平臺

公司 做網(wǎng)站,推廣信息發(fā)布平臺,淘寶圖片做鏈接的網(wǎng)站,重大軍事新聞今日最新消息之前在弄頁面導(dǎo)出為pdf的時候,jspdf配合html2canvas貌似很好用,我自己在使用的時候也沒有覺得有什么問題,但是客戶那邊反饋說下載下來的pdf不全. 后來問了客戶才發(fā)現(xiàn)客戶的瀏覽器比例縮放到了125%;這就導(dǎo)致了pdf不全, 先看看原來的代碼: download() {let jsPDF jspdf.jsPDF;l…

之前在弄頁面導(dǎo)出為pdf的時候,jspdf配合html2canvas貌似很好用,我自己在使用的時候也沒有覺得有什么問題,但是客戶那邊反饋說下載下來的pdf不全. 后來問了客戶才發(fā)現(xiàn)客戶的瀏覽器比例縮放到了125%;這就導(dǎo)致了pdf不全, 先看看原來的代碼:

download() {let jsPDF = jspdf.jsPDF;let container = document.getElementById('reportContent');let boundingClientRect = container.getBoundingClientRect();let width = boundingClientRect.width;let height = boundingClientRect.height;let canvas = document.createElement('canvas');let scale = 2; //這里放大了2倍是為了讓導(dǎo)出的pdf更加清晰.canvas.width = width * scale;canvas.height = height * scale;let context = canvas.getContext('2d');context.scale(scale , scale); //這里需要放大html2canvas(container, {allowTaint: true,taintTest: true,canvas,}).then(canvas => {let binary = canvas.toDataURL("image/jpeg", 1)canvas.toBlob((blobObj) => {let contentWidth = canvas.width;let contentHeight = canvas.height;let pdf = new jsPDF('l', 'pt', [contentWidth, contentHeight]);pdf.addImage(binary, "JPEG", 0, 0, contentWidth, contentHeight)pdf.save('xxx.pdf');});})},

以上代碼在100%縮放的情況下沒有任何問題,導(dǎo)出的pdf也很清晰,但是一旦到了125%或者其他的縮放比例,那么導(dǎo)出的pdf就會缺失掉一部分.那么需要這么修改呢? 直接上代碼:

 download() {let jsPDF = jspdf.jsPDF;let container = document.getElementById('reportContent');let boundingClientRect = container.getBoundingClientRect();let width = boundingClientRect.width;let height = boundingClientRect.height;let canvas = document.createElement('canvas');let devicePixelRatio = window.devicePixelRatio || 1;let scale = 2 * devicePixelRatio;//這里放大了2倍是為了讓導(dǎo)出的pdf更加清晰.canvas.width = width * scale;canvas.height = height * scale;let context = canvas.getContext('2d');context.scale(scale / devicePixelRatio, scale / devicePixelRatio); //這里需要放大, 同時縮小繪制, 否則會出現(xiàn)pdf不全的情況.html2canvas(container, {allowTaint: true,taintTest: true,canvas,}).then(canvas => {let binary = canvas.toDataURL("image/jpeg", 1)canvas.toBlob((blobObj) => {let contentWidth = canvas.width;let contentHeight = canvas.height;let pdf = new jsPDF('l', 'pt', [contentWidth, contentHeight]);console.log(canvas.width, canvas.height);pdf.addImage(binary, "JPEG", 0, 0, contentWidth, contentHeight)pdf.save(vthis.reportTitle + '.pdf');});})},

需要改的也不多, 只是需要判斷下設(shè)備的devicePixelRatio; 這樣就不會出現(xiàn)pdf不全的問題了;

tips:這里有個小坑, 就是html2canvas的版本需要在1.4以上;不然的話導(dǎo)出的pdf會出現(xiàn)黑邊, 之前用的是1.2版本,就出現(xiàn)了黑邊,怎么調(diào)都不對,最后換了個版本就行了.....我用的版本是1.4.1.
還有個問題是pdf里面如果有echarts的話可能會不是很清晰,這里在創(chuàng)建echarts的時候可以加個配置就可以了.

let myChart = echarts.init(document.getElementById('deviceOnlineCharts'), null, {devicePixelRatio: 2});

http://m.aloenet.com.cn/news/35989.html

相關(guān)文章:

  • 做網(wǎng)站是什么專業(yè)什么工作百度后臺推廣登錄
  • 做pc端網(wǎng)站要成本么廣告推廣軟件
  • wordpress loading優(yōu)化
  • wordpress手機版怎么注冊seo站
  • 做設(shè)計排版除了昵圖網(wǎng)還有什么網(wǎng)站中國新冠疫情最新消息
  • 專業(yè)做網(wǎng)站杭州網(wǎng)站推廣平臺
  • 東營本地網(wǎng)站制作公司品牌策劃與推廣方案
  • ios wordpress 編輯器淄博seo網(wǎng)站推廣
  • 小城鎮(zhèn)建設(shè)的網(wǎng)站谷歌瀏覽器 官網(wǎng)下載
  • 做網(wǎng)站有前途云南seo網(wǎng)絡(luò)優(yōu)化師
  • 學生做的網(wǎng)站需要備案seo課程多少錢
  • 建設(shè)網(wǎng)站經(jīng)營范圍怎么在百度上添加自己的店鋪地址
  • 網(wǎng)站制作 信科網(wǎng)絡(luò)第三方推廣平臺
  • 打字建站寶愛站官網(wǎng)
  • wordpress阿里百秀全達seo
  • i深建官方網(wǎng)站怎么做免費的網(wǎng)站推廣
  • 織夢 網(wǎng)站欄目管理 很慢小紅書軟文案例
  • 網(wǎng)頁設(shè)計網(wǎng)站建設(shè)的基本流程關(guān)鍵詞工具有哪些
  • 怎樣在網(wǎng)站上做鏈接站長字體
  • 上海app網(wǎng)站開發(fā)價值信息發(fā)布平臺推廣有哪些
  • 浙江網(wǎng)站建設(shè)報價seo指的是搜索引擎
  • 湖北中牛建設(shè)有限公司網(wǎng)站網(wǎng)站搜索
  • 哪個網(wǎng)站有ae免費模板競價托管咨詢微競價
  • 現(xiàn)在幫人做網(wǎng)站賺錢嗎bt種子bt天堂
  • 建設(shè)政府信息網(wǎng)站如何注冊網(wǎng)站平臺
  • 做航空產(chǎn)品的網(wǎng)站有哪些搜索量用什么工具查詢
  • 如何將網(wǎng)站指向404太原百度網(wǎng)站快速優(yōu)化
  • 煙臺網(wǎng)站建設(shè)哪家好呢網(wǎng)絡(luò)顧問
  • 手機網(wǎng)站js特效個人博客登錄入口
  • 廣州建站模板搭建西安百度競價開戶