Настройка paperSize для печати PDF в Casper

При создании PDF-файлов в Phantom я могу установить размер бумаги следующим образом:

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 не устраняет проблему.

Есть ли способ получить доступ к объекту pageSize из Casperjs?


person Jeff    schedule 18.05.2013    source источник


Ответы (1)


Вы можете получить доступ от paperSize до casper.page.paperSize, однако вам нужно будет установить это после вызова casper.start(), иначе casper.page будет равно нулю.

Вот пример:

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();
person hexid    schedule 18.05.2013
comment
@hexid есть ли возможность добавить в PDF пользовательский верхний и нижний колонтитулы до того, как casperjs сохранит страницу в формате PDF? - person Anagio; 23.10.2013
comment
@Anagio Вы можете проверить этот вопрос для примера. - person hexid; 23.10.2013