在Casper中设置PDF打印的纸张尺寸

时间:2013-05-18 20:40:40

标签: casperjs

在Phantom中生成PDF时,我可以像这样设置纸张大小:

page.paperSize = {
  height: '8.5in',
  width: '11in',
  orientation: 'landscape',
  border: '0.4in'
};

然后page.render(输出)函数正确生成PDF。换句话说,大小是正确的,它有很多这样大小的页面。

我无法在Casper中使用它(我不确定它是否受支持)。例如,以下内容:

var casper = require('casper').create({
    paperSize: {
      height: '8.5in',
      width: '11in',
      orientation: 'landscape',
      border: '0.4in'
    },
    logLevel: 'debug',
    verbose: true
});

....this.capture('print.pdf'); ...

使用单个非常长的页面创建PDF。设置 viewportSize 无法解决问题。

有没有办法从Casperjs中访问pageSize对象?

1 个答案:

答案 0 :(得分:16)

您可以通过paperSize访问casper.page.paperSize,但是在调用casper.start()后需要设置此项,否则casper.page将等于null。

以下是一个例子:

var casper = require("casper").create();
casper.start();

casper.page.paperSize = {
  width: '11in',
  height: '8.5in',
  orientation: 'landscape',
  border: '0.4in'
};

casper.thenOpen('http://www.facebook.com/', function() {
  this.capture('test.pdf');
  this.echo('created pdf.');
});

casper.run();