使用node.js中的phantom.js生成Pdf

时间:2016-02-01 10:11:58

标签: javascript node.js express phantomjs

我正在尝试使用带有express的node.js中的phantom.js生成pdf。 我的js如下:

var express = require('express');
var router = express.Router();
var phantom = require('phantom');

router.get('/pdfDemo', function(req, res, next) {

    var html = '<!DOCTYPE html><html><head><title>My Webpage</title></head>' +
        '<body><h1>My Webpage</h1><p>This is my webpage. I hope you like it' +
        '!</body></html>';

    phantom.create(function (error, ph) {
        ph.createPage(function (error, page) {
            page.set('content', html, function (error) {

                if (error) {
                    console.log('Error setting content: %s', error);
                } else {
                    page.render('page.pdf', function (error) {
                        if (error) console.log('Error rendering PDF: %s', error);
                    });
                }

                ph.exit();
            });
        });
    });
});

module.exports = router;

执行此操作时出现以下错误:

phantomjs-node: You don't have 'phantomjs' installed

    /paht_to_file/WebStrom WorkSpace/PdfDemo/routes/pdf.js:21
            ph.createPage(function (error, page) {
               ^
    TypeError: Object Error: spawn ENOENT has no method 'createPage'

我使用webstrom作为开发环境。我是Node.js的新手,无法弄清楚这里有什么问题。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

这与节点无关。您应该在计算机上安装phantomjs。您可以通过执行brew install phantomjsapt-get install phantomjs来执行此操作,具体取决于您的操作系统。