首页 > 解决方案 > 如何将 html2pdf PDF 转换为 base64?

问题描述

我无法让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 上搜索了文档和问题。

标签: javascriptjspdfhtml2pdf

解决方案


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

您的新代码应如下所示:

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

文档中:

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

简单地使用output()不会返回承诺,您必须使用outputPdf().


推荐阅读