当前位置: 首页 > news >正文

公司企业建站云南网络推广

公司企业建站,云南网络推广,wordpress教程 数据库,用dw做购票网站模板之前在弄页面导出为pdf的时候,jspdf配合html2canvas貌似很好用,我自己在使用的时候也没有觉得有什么问题,但是客户那边反馈说下载下来的pdf不全. 后来问了客户才发现客户的浏览器比例缩放到了125%;这就导致了pdf不全, 先看看原来的代码: download() {let jsPDF jspdf.jsPDF;l…

之前在弄页面导出为pdf的时候,jspdf配合html2canvas貌似很好用,我自己在使用的时候也没有觉得有什么问题,但是客户那边反馈说下载下来的pdf不全. 后来问了客户才发现客户的浏览器比例缩放到了125%;这就导致了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倍是为了让导出的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%缩放的情况下没有任何问题,导出的pdf也很清晰,但是一旦到了125%或者其他的缩放比例,那么导出的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倍是为了让导出的pdf更加清晰.canvas.width = width * scale;canvas.height = height * scale;let context = canvas.getContext('2d');context.scale(scale / devicePixelRatio, scale / devicePixelRatio); //这里需要放大, 同时缩小绘制, 否则会出现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');});})},

需要改的也不多, 只是需要判断下设备的devicePixelRatio; 这样就不会出现pdf不全的问题了;

tips:这里有个小坑, 就是html2canvas的版本需要在1.4以上;不然的话导出的pdf会出现黑边, 之前用的是1.2版本,就出现了黑边,怎么调都不对,最后换了个版本就行了.....我用的版本是1.4.1.
还有个问题是pdf里面如果有echarts的话可能会不是很清晰,这里在创建echarts的时候可以加个配置就可以了.

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

http://www.hkea.cn/news/581696/

相关文章:

  • 蜜芽免费网站域名关键词网站排名查询
  • 网站备案要到哪里下载关键词在线挖掘网站
  • 跨境电商开发seo的优化策略有哪些
  • 做网站的费用 优帮云百度广告代运营
  • wordpress儿童卡通主题兰州网站seo服务
  • 8网站建设做网站sem优化师是什么意思
  • 设计师个人网站怎么做百度优化培训
  • 广东海外建设监理有限公司官方网站2345网址导航是病毒吗
  • 深圳网站制作培训宁波网络营销公司
  • 网站建设方案书 模板长清区seo网络优化软件
  • 简述网站的推广策略产品设计
  • 商贸有限公司网站建设此网站服务器不在国内维护
  • 常州个人做网站制作小程序的软件
  • 郑州做网站公司dz论坛如何seo
  • 十堰商城网站建设网络营销seo优化
  • 小欢喜林磊儿什么网站做家教福州seo推广外包
  • 许昌网站开发博客营销
  • 做网站用jquery爱站网关键词挖掘
  • wordpress手动裁剪seo营销推广服务公司
  • 英文网站建设网站海南网站制作公司
  • 网页设计与网站建设主要内容软文营销的特点
  • 一起做网站17广州最新小组排名
  • 最专业的网站设计公司有哪些论坛企业推广
  • 单页网站怎么做外链个人网页
  • 宁波城乡住房建设局网站有效的网络推广
  • 网站建设 深圳销售crm客户管理系统
  • 高端网站开发设计站长之家字体
  • 免费网站建站工具购买域名的网站
  • 淘宝联盟怎么做网站百度网站提交
  • 前端做用vue做后台多还是做网站多青岛网站快速排名优化