使用jsPDF在Nodejs上创建PDF文件时出错

时间:2017-08-02 21:47:18

标签: node.js jspdf html2canvas

我尝试使用jsPDF并且我创建了一个简单的示例,如下所示。但是,正在发生错误,我不明白其中的原因,因为一切似乎都是正确的:Uncaught SyntaxError: Unexpected token <。所有必需的文件都在同一目录中。

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>

1 个答案:

答案 0 :(得分:0)

<强>解决:

即使在使用--save重新安装jsPDF或使用-g全局重新安装,问题仍然存在。要解决此问题,我必须将jspdf.min.jshtml2canvas.js个文件复制到我的应用的public/目录中。

我的javascript for PDF看起来像这样:

<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>