当前位置: 首页 > 知识库问答 >
问题:

html2canvas把div生成图片时div中的图片为什么没显示?

徐德海
2024-06-20

下面是一个div块:
image.png
我用html2canvas把这个div生成了图片,然后用jspdf把图片保存成pdf格式。
image.png
现在的问题是html2canvas把div生成图片时DIV里面的图片没有显示,这图片是需要单独处理吗?有遇到过这问题的没?

下面是代码:

 <div id="printContent" class="printContent">          <Histology :isPrint="isPrint" ref="childRef" />        </div>
const printHandle = async () => {  console.log('打印')  console.log('生成pdf')  isPrint.value = true  setTimeout(async () => {    const content = document.getElementById('printContent')    if (content) {      const canvas = await html2canvas(content, { scale: 2 })      const imgData = canvas.toDataURL('image/png')      const pdf = new jsPDF('p', 'mm', 'a4')      const imgProps = pdf.getImageProperties(imgData)      const pdfWidth = pdf.internal.pageSize.getWidth()      const pdfHeight = (imgProps.height * pdfWidth) / imgProps.width      pdf.addImage(imgData, 'PNG', 0, 0, pdfWidth, pdfHeight)      // 将PDF输出为Blob对象      const pdfBlob = pdf.output('blob')      // 创建一个链接元素并设置其属性      const downloadLink = document.createElement('a')      downloadLink.href = URL.createObjectURL(pdfBlob)      downloadLink.download = 'document.pdf' // 设置下载的文件名      // 触发点击事件以开始下载      document.body.appendChild(downloadLink)      downloadLink.click()      document.body.removeChild(downloadLink) // 之后可以移除链接元素      isPrint.value = false    }  }, 500)}

共有2个答案

陶胤
2024-06-20

看看生成图片的结构图

裴昕
2024-06-20

控制台没有报错吗,大概率是图片跨域了,前台需要设置下跨域请求(前提是资源支持跨域)

https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/img...

 类似资料:
  • 我面临着将图片放入div的问题。基本上div是卡片的标题。图片的方向和大小不同。我应该怎么做才能让他们适应? 照片在div

  • 本文向大家介绍怎么让div中的图片和文字同时上下居中?相关面试题,主要包含被问及怎么让div中的图片和文字同时上下居中?时的应答技巧和注意事项,需要的朋友参考一下 给 img 设置 并且 只对行内元素,还有表格内的单元格有效,对块级元素的垂直居中是没有任何效果的 MDN 文档说明

  • 问题内容: 我在div()中有一个,并且我希望此图像恰好位于div的中间,但是我尝试的任何方法都无效 谢谢你的帮助! 问题答案: 此处发布的每个解决方案都假定您知道的尺寸, 这不是常见的情况。 同样,将尺寸植入解决方案中也是痛苦的。 只需设置: 要么 就这样。 请注意,您还必须为external设置一个缩写。

  • 问题内容: 我希望一个html图像与div标签的底部齐平。我似乎找不到解决此问题的方法。 这是我的HTML: 问题是div嵌套在具有填充或边距的其他div中。 问题答案: 在包装的div标签上添加相对位置,然后将图像绝对定位在其中,如下所示: CSS: HTML: 现在,图像位于div的底部。

  • 然后片段显示了在AR环境中添加3D模型时,相机正在查看的内容。以下是我保存图片的方法: } 私人乐趣takePicture(){val filename=generateFilename()val view=arFragment.arSceneView