如何在jsPDF中使用addHTML函数

24

请问如何在jsPDF库中使用addHTML函数,我正在尝试将网页转换为pdf,想要使用addHTML函数。请告诉我需要传递哪些参数才能将整个网页(包括头部,标志,正文等)转换为pdf。

2个回答

34

首先,您需要包括jsPDF库,以及html2canvasrasterizeHTML

然后,只需创建一个jsPDF对象并将整个“body”标记(或任何其他内容)保存为pdf:

var pdf = new jsPDF('p','pt','a4');
pdf.addHTML(document.body,function() {
    pdf.save('web.pdf');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.0.272/jspdf.debug.js"></script>

<body>
    <p id="to-pdf">HTML content...</p>
</body>

您可以在 jsPDF 网站上找到更多示例:http://mrrio.github.io/jsPDF/


3
需要使用 document.body 吗?为什么不能使用 document.getElementById() 或其他东西? - Brian Schermerhorn
3
不必使用document.body,你可以传递任何DOM元素。只需确保它不是封装的jQuery引用:$("#target").get(0)而不是$("#target") - Vikram Deshmukh
如何使用多个addhtml来添加头部、正文和页脚?请帮帮我,我已经苦苦挣扎两天了... - Ananta Prasad
2
我正在使用最新版本的jsPDF 2.1.1与angular,addHTML方法的智能感知是有效的,但在运行时会抛出TypeError: this.pdfCreator.addHTML不是一个函数的错误。jsPDF.html()可以正常工作,但我想在html元素之后/之前添加其他内容,而jsPDF.html()不支持这一点... 我将非常感激任何帮助... - Arun Kumar A.J

0
使用最新版本的jsPDF,您可以添加HTML不起作用,而是使用
pdf.html(document.getElementById('gen-notes'), {
    callback: function (pdf) {
      pdf.save();
        },
    x: 100, // x position on the PDF document in jsPDF units.
    y: 100, // y position on the PDF document in jsPDF units.
  });

更多选项请参考jsPDF文档

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接