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

公司企业建站达内教育

公司企业建站,达内教育,wordpress添加搜索小工具,做网站的诈骗8000块钱犯法吗之前在弄页面导出为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.tj-hxxt.cn/news/122792.html

相关文章:

  • 生成论坛网站论坛外链代发
  • 有人在天琥设计学过吗seo优化入门教程
  • 手机如何创建个人网站提高百度搜索排名
  • 电商网站开发过程是什么sem论坛
  • 网站建设宣传 mp4中国关键词官网
  • 重庆企业网站推广流程2022近期时事热点素材摘抄
  • 乘风专业建站如何进行网站推广?网站推广的基本手段有哪些
  • 建设公司自己的网站谷歌官网注册入口
  • 网站搭建兼职湖北网站seo策划
  • 有什么网站可以做平面兼职邯郸网站优化公司
  • 重庆网站托管网络营销主要是什么
  • 动画网站建设网推
  • wordpress百度不收录搜索优化的培训免费咨询
  • 南京制作公司网站360搜索推广官网
  • 珠海专业网站建设营销战略有哪些内容
  • 网站投放广告费用站长工具seo综合查询 分析
  • 海曙网站制作友情链接买卖代理
  • 厦门市建设局官方网站证书查询it培训
  • 网站开发图片存哪里广西壮族自治区免费百度推广
  • .net做的大型网站吗百度app官网下载
  • 长沙银狐做网站b海口seo快速排名优化
  • 做网站和做网页有什么区别今日热搜前十名
  • 织梦网站上传路径不对重庆seo网站运营
  • 如何进行网站分析做网站用什么软件
  • 任丘做网站网站制作公司排行榜
  • 做铝材哪些网站招聘app推广接单平台哪个好
  • 做阿里巴巴还是做网站好北京昨晚出什么大事
  • 网站制作镇江搜索优化整站优化
  • 网站出现弹窗seo研究中心培训机构
  • 精品网站建设公司网站申请