我有一个用于保存html页面的按钮。当用户单击按钮时,我想触发jsPDF函数,但返回“ jspdf PubSub错误”,并且生成的pdf文件为空。

 var doc = new jsPDF();
 var specialElementHandlers = {
   '#editor': function(element, renderer){
    return true;
   }
 };

 $('.voucher-actions__save').click(function () {
   doc.fromHTML($('body').html(), 0, 0, {
    'width': 170,
    'elementHandlers': specialElementHandlers
   });
   //doc.save('voucher.pdf');
   console.log(doc);
 });

最佳答案

添加以下代码,它应该可以工作

// #clientPrintContent is the element id which contains print content
// Print Docs
function printPDF() {
    var doc = new jsPDF();
    var elementHandler = {
        '#clientPrintContent': function (element, renderer) {
            return true;
        }
    };
    var source = document.getElementById("clientPrintContent");
    doc.fromHTML(
      source,
      15,
      15,
      {
          'width': 180, 'elementHandlers': elementHandler
      });
    // Output
    doc.save('sample-file.pdf');
}


您可以从jsPDF添加CDN托管库

<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.4.1/jspdf.debug.js" integrity="sha384-THVO/sM0mFD9h7dfSndI6TS0PgAGavwKvB5hAxRRvc0o9cPLohB0wb/PTA7LdUHs" crossorigin="anonymous"></script>

关于javascript - jsPDF始终在控制台上返回jsPDF PubSub错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45561717/

10-12 15:38