Html2Canvas呈现完整的div内容

时间:2019-04-18 14:32:03

标签: angular pdf html2canvas

我正在尝试使用html2canvas将div的内容打印为pdf:

<div #printSection>
  some content
</div>

我有一个用于此目的的功能:

public print(el: ElementRef, name: string, orientation: string = 'l') {
    const doc = new jsPDF(orientation, 'px', 'a4');
    html2Canvas(el.nativeElement).then(
      (canvas) => {
        const img = canvas.toDataURL('image/png');
        const ratio = canvas.height / canvas.width;
        const w = doc.internal.pageSize.width;
        const h = w * ratio;
        doc.addImage(img, 'JPEG', 0, 10, w, h);
        doc.save(name);
      }
    );
  }

我将元素ref作为参数传递,并将其内容导出为pdf。 问题是:只要我使用大屏幕,当我的屏幕变小并且div不能整体呈现但它在侧面具有滚动条时,此功能就无法正常显示整个div内容,但它可以正常工作仅限于可见部分。

是否有解决此问题的方法。我需要此打印内容与启动屏幕无关,因为该应用程序也应在平板电脑上运行。

感谢您的建议。

1 个答案:

答案 0 :(得分:0)

html2pdf可能可以解决您的问题。它基于jsPDF和html2canvas构建。 https://github.com/eKoopmans/html2pdf.js 试试看。