NodeJS的PhantomJS桥:paperSize无法正常工作

时间:2013-12-17 20:48:04

标签: node.js phantomjs

我使用PhantomJS桥接NodeJS。 我想呈现595x842像素大小的PDF文件。

var phantom = require('phantom');
phantom.create(function(ph) {
    ph.createPage(function(page) {
        page.set('paperSize', {width: '595px', height: '842px', border: '0px' });
        page.open("http://localhost:3000", function(status) {
            if (status !== 'success') {
                console.log('Unable to access the network!');
            } else {
                page.render('filename.pdf');
            }
            ph.exit();
        });
    });
});

但是,到最后我得到了235x331px的PDF文件。我不明白为什么。也许有人可以帮助解释我如何呈现必要的文件大小?

1 个答案:

答案 0 :(得分:4)

回顾repo tutorial我发现了这个:

  

无法直接获取/设置属性,而是使用page.get('version',   callback)或page.set('viewportSize',{width:640,height:480})等。   可以通过在键中包含点来访问嵌套对象,例如   page.set('settings.loadImages',false)

所以我尝试了以下代码:

var phantom = require('phantom');

phantom.create(function(ph) {

    ph.createPage(function(page) {

        page.set('viewportSize', { width : 595, height : 842});
        page.open("http://localhost:3000", function(status) {
            if (status !== 'success') {
                console.log('Unable to access the network!');
            } else {
                page.render('filename.pdf');
            }
            ph.exit();

        });
    });
});

希望这对你有用,就像它对我一样。