html2canvas 无法正确呈现(重叠颜色)

Posted

技术标签:

【中文标题】html2canvas 无法正确呈现(重叠颜色)【英文标题】:html2canvas not rendering properly (overlapping color) 【发布时间】:2020-01-19 10:03:23 【问题描述】:

我正在使用 html2canvas 和 jsDoc。我正在将我当前的组件 html 渲染为 pdf。 但是在我下载 pdf 后,其他组件的颜色不知何故与当前组件重叠。这是 Angular 组件。

截图:

    应用程序的屏幕截图

    pdf 查看器的屏幕截图(侧边栏可见):

3. pdf 查看器的屏幕截图(侧边栏隐藏): 您可以看到颜色从提交按钮到结束是重叠的。

代码:

  downloadPdf() 
    html2canvas(document.querySelector(".main-content")).then(canvas => 
      var pdf = new jsPDF('p', 'pt', [canvas.width, canvas.height]);
      var imgData = canvas.toDataURL("image/jpeg",1.0);
      pdf.addImage(imgData, 0, 0, canvas.width, canvas.height);
      pdf.save('image.pdf');
    );
  

猜猜为什么颜色会重叠?任何其他将 HTML 呈现为 pdf 的解决方案?

【问题讨论】:

一些猜测;也许这是一个焦点/悬停状态?也许它与print 样式表有关?如果您可以添加一个最小的可预生产示例***.com/help/minimal-reproducible-example,将会很有帮助 它与侧边栏有关。当侧边栏可见时,颜色会重叠。当侧边栏被隐藏/移除时,颜色不会重叠。 我发现了问题,它是由于宽度大小。 【参考方案1】:

也许我的回答对某人有所帮助。我通过添加 scale 属性解决了类似的问题

html2canvas(document.querySelector('#preview_modal'), 
    allowTaint: false,
    useCORS: true,
    scale: 2,
)

【讨论】:

以上是关于html2canvas 无法正确呈现(重叠颜色)的主要内容,如果未能解决你的问题,请参考以下文章

html2canvas Chart.js 图表未呈现

下载为 html 时的 Jupyter 笔记本暗模式无法正确呈现

HTML2Canvas 不呈现完整的 div,只呈现屏幕上可见的内容?

使用 CSS 的虚线/虚线圆形 - 在 Chrome 中无法正确呈现

select2 rails 下拉菜单无法正确呈现

UICollectionView 中的 UIView 渐变颜色未正确呈现