在Casper中为PDF打印设置paperSize

Jef*_*eff 9 casperjs

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

page.paperSize = {
  height: '8.5in',
  width: '11in',
  orientation: 'landscape',
  border: '0.4in'
};
Run Code Online (Sandbox Code Playgroud)

然后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'); ...
Run Code Online (Sandbox Code Playgroud)

使用单个非常长的页面创建PDF.设置viewportSize不能解决问题.

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

hex*_*xid 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();
Run Code Online (Sandbox Code Playgroud)