Html2Canvas foreignObjectRendering 只渲染视点

Cod*_*0d3 5 html javascript canvas html2canvas angular

我目前在使用 Html2Canvas 包将复杂的 DIV 元素渲染为 CANVAS 元素时遇到问题。问题是我想写到 CANVAS 的 DIV,有

overflow: auto 
Run Code Online (Sandbox Code Playgroud)

所以DIV大于屏幕比例。并在火上加油,上述所有内容都在 Angular 5 组件中,这意味着当我访问 .css 时 CSS 不可用ElementRef.nativeElement.innerHTML

Encapsulation.None 在这里也不适合我。

HTML 到画布设置:

  async: true,
  logging: false,
  backgroundColor: null,
  allowTaint: true,
  foreignObjectRendering: true,
  removeContainer: true
Run Code Online (Sandbox Code Playgroud)

结果: 结果与foreignObjectRendering:true

注意图像周围的黑色空间,是屏幕比例,但无法渲染。

当我设置时:

foreignObjectRendering: false
Run Code Online (Sandbox Code Playgroud)

我得到了非常满意的质量和我想要的尺寸。但图表如下所示:

在此处输入图片说明

提前致谢!这对我来说非常重要。我保证,如果我能解决这个问题,我将创建一个非常有用的 NPM 包,以在 Angular 2+ 中将元素导出为 PDF 文件

为方便起见,还附上 Html2Canvas 文档:http ://html2canvas.hertzen.com/configuration/