9

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

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

然后 page.render(output) 函数会正确生成 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 对象?

4

1 回答 1

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();
于 2013-05-18T21:40:14.220 回答