jsPDF下载空白pdf

5
我会尽力为您翻译,以下是您需要翻译的内容:

我正在使用jsPDF从当前HTML生成PDF,如果我将代码粘贴到控制台并下载具有当前HTML的PDF,则代码可以正常运行。但是当我将其放在JS文件中时,它将下载一个空白的PDF:

这是代码:

<script>
  function descargar_pdf(){
      var pdf = new jsPDF();
      pdf.addHTML(document.body,function() {});
      pdf.save('Estadodecuenta.pdf');
  };
</script>

该函数从一个按钮中调用:
<button class="descargar_pdf" id="ignorePDF" onclick="descargar_pdf();"> Descarga tu estado de cuenta</button>
3个回答

11

addHTML函数的第二个参数是一个回调函数,在HTML渲染完成后被调用。

pdf.addHTML(document.body, function() {
    pdf.save('*.pdf');
});

由于某种原因,function()内的任何内容都没有被执行。画布正在呈现,但pdf.save()没有被调用。 - DevEng
@DevEng 我也遇到了类似的问题。你已经解决了吗? - Kavi Vaidya
@KaviVaidya 抱歉,我已经放弃了这种方法一段时间了。我们只需打开一个新窗口,在那里添加HTML并强制打印窗口打开。然后用户将其保存为PDF。 - DevEng
@DevEng 但是这样会去掉CSS,对吧?比如顶部和左侧属性不会被打印保留。或者你是用只包含画布的新页面打开的吗? - Kavi Vaidya
当我们打开新页面时,我们将CSS传递到HTML中,以便样式得以保留。 - DevEng

2
这可能听起来很愚蠢,但有很多安全插件将JSPDF视为“不安全”的js并阻止它,我遇到了与您相同的问题,但在隐身模式(没有扩展程序)下测试后,它可以正常工作。 这可能不是解决您问题的方法,但这是您应该记住的建议。

2

html2canvas的最后一个正常工作的版本是RC1。降级到该版本,它应该像预期的那样工作。


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