2017-08-02 58 views
0

我正在嘗試使用jsPDF,並創建了一個簡單示例,如下所示。然而,錯誤正在發生,我不明白原因,因爲一切似乎都是正確的:Uncaught SyntaxError: Unexpected token <。所有需要的文件都在同一個目錄中。使用jsPDF在Nodejs上創建PDF文件時出錯

Html_to_pdf.html

<!DOCTYPE> 
<html> 
    <head> 
     <title>PDF to HTML test</title> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
     <script type="text/javascript" src="jspdf.min.js" ></script> 
     <script type="text/javascript" src="html2canvas.js" ></script> 

     <script type="text/javascript"> 

      function genPDF() { 
       html2canvas(document.body, { 
        onrendered: function(canvas) { 
         var img = canvas.toDataURL("image/png"); 
         var doc = new jsPDF(); 
         doc.addImage(img, 'JPEG', 20, 20); 
         doc.save('test.pdf'); 
        } 
       }); 
      }   

     </script> 

    </head> 
    <body> 
     <h1>jsPDF Test</h1> 

     <a href="javascript:genPDF()">Download PDF</a> 

     <div id="testDiv"> 
      <h1>Example Header</h1> 
      <input type="text"/> 
      <input type="submit" value="button" /> 
      <br><br> 
      <img src="flores.jpg" width="600" height="450" /> 

     </div> 

    </body> 
</html> 

回答

0

解決:

即使--save或全局與-g重裝jsPDF後,問題仍然存在。要解決它,我不得不復制jspdf.min.jshtml2canvas.js文件到我的應用程序的public/目錄。

我對PDF的JavaScript看起來像這樣:

<script type="text/javascript"> 
    var dtTime = "03/08/2017"; 

    function genPDF() { 
     //html2canvas(document.body, { 
     html2canvas(document.getElementById("toPdf"), { 
     onrendered: function(canvas) { 
      var imgLogo = 'data:image/jpeg;base64..................'; 

      var doc = new jsPDF(); 

      doc.addImage(imgLogo, 'JPEG', 15, 10); 
      doc.setTextColor(187, 2, 2); 
      doc.text('TEXT TEXT TEXT TEXT ', 20, 40); 
      doc.setTextColor(17, 20, 150); 
      doc.text('TEXT TEXT TEXT TEXT', 20, 47); 

      doc.setLineWidth(0.1); 
      doc.line(20, 285, 190, 285); 

      var dt = new Date(); 
      doc.setFontSize(8); 
      doc.setTextColor(0, 0, 0); 
      doc.text('TEXT ', 22, 289); 
      doc.text(125, 289, 'DATE: ' + dtTime, null, null, 'right'); 

      doc.setDisplayMode('100%'); 
      doc.addImage(img, 'JPEG', 20, 55); 
      //doc.addImage(img, 'JPEG', 40, 10, 218, 190); 
      doc.save('report-test.pdf'); 
     } 
    }); 
}   

</script>