使用html2canvas截图不全问题的解决办法.docx

使用html2canvas截图不全问题的解决办法.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

使用html2canvas截图不全问题的解决办法

目录实现方法遇见问题具体封装代码总结

实现方法

利用html2canvas工具将html转为图片流npminstallhtml2canvas

利用jspdf工具将图片流转为pdf并保存npminstalljspdf

遇见问题

1、截图不全

之前没用过这个,网上找了代码之后发现有滚动条的情况下会截图不全,仅能展示出当前页面展示出来的内容,类似于这种情况,这是带滚动条的html,第一张和第二张分别为滚动条在顶部以及在底部的展现

下载成pdf之后分别为这样,只有窗口展示的部分,滚动条以外的内容没有

百度之后有让改参数的,也有让滚动条滚至顶部的,感觉都不是我的问题,直觉说是元素高度哪里有问题,原来的页面元素是这么写的,对比下载后的文件,内容高度大概和最外面的div高度是一样的,外面盒子的高度又是固定的,本人就试了下在里面再加一个div,且不设置高度,让其高度完全由内容撑开,问题就解决了

divid=pdfDom_children//这里是滚动的div

div/div

div/div

div111/div

/div

修改后的页面元素

div

divid=pdfDom_children

div/div

div/div

div111/div

/div

/div

具体封装代码

//导出页面为PDF格式

importhtml2canvasfromhtml2canvas;

importJsPDFfromjspdf;

consthtmlToPdf={

getPdf(title:string){

consttargetDom=document.getElementById(pdfDom_children);

html2canvas(document.querySelector(#pdfDom_children),{

allowTaint:true,

backgroundColor:white,

useCORS:true,//支持图片跨域

scale:1,//设置放大的倍数

//height:targetDom.clientHeight,//网上原来的设置,没用,注释掉了

//width:targetDom.clientWidth,//网上原来的设置,没用,注释掉了

//windowHeight:targetDom.clientHeight,//网上原来的设置,没用,注释掉了

}).then((canvas)={

//内容的宽度

constcontentWidth=canvas.width;

//内容的高度

constcontentHeight=canvas.height;

//一页pdf显示htm1页面生成的canvas高度,a4纸的尺寸[595.28,841.89];

constpageHeight=(contentWidth/592.28)*841.89;

//未生成pdf的htm1页面高度

letleftHeight=contentHeight;

//页面偏移

letposition=0;

//a4纸的尺寸[595.28,841.89],htm1页面生成的canvas在pdf中图片的宽高

constimgwidth=595.28;

constimgHeight=(592.28/contentWidth)*contentHeight;

//canvas转图片数据

constpageData=canvas.toDataURL(img/jpeg,1.0);

//新建JSPDF对象

constPDF=newJsPDF(,pt,a4);

if(leftHeightpageHeight){

PDF.addImage(pageData,JPEG,0,0,imgwidth,imgHeight);

}else{

while(leftHeight0){

PDF.addImage(pageData,JPEG,0,position,imgwidth,i

文档评论(0)

184****8785 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档