如何将html2pdf PDF转换为base64?

时间:2018-07-11 20:26:45

标签: javascript jspdf html2pdf

我在获取html2pdf.js以便正确给我回调函数以便将其转换为base64字符串方面遇到麻烦。

我已经尝试过了:

html2pdf().from(el).then(function(pdf) { 
   //pdf is null when I log this...
   console.log(pdf);
}).save();

使用从output()到此的所有其他变体形式:

var pdf = new jsPDF();
html2pdf().from(element).set({ pdf: pdf }).toPdf().save();

无济于事。

我目前在v.0.9.0上。我真正需要获得的只是base64,因此我可以将其发送回服务器并将其附加到电子邮件中-对我而言,如何完成此操作并不重要,但是我在确定如何使用此功能方面遇到了问题正确回调。

我在github上搜索了文档和issues

1 个答案:

答案 0 :(得分:1)

缺少的是对outputPdf()方法的调用。您还应该确保已升级到html2pdf插件的最新版本,因为较旧的版本不支持此功能。

您的新代码应如下所示:

html2pdf().from(el).outputPdf().then(function(pdf) {
    //This logs the right base64
    console.log(btoa(pdf));
});

来自documentation

  

[outputPdf]将类型和选项发送到jsPDF对象的输出方法,然后   以Promise的形式返回结果(使用.then访问)

仅使用output()不会返回承诺,必须使用outputPdf()