Ширина изображения фантома не соответствует ожидаемой
Когда я делаю скриншоты, используя phanomjs, используя следующий код, работает нормально, и я получаю ширину как 1920px, и высота не проблема для меня.
var webPage = require('webpage');
var page = webPage.create();
page.viewportSize = { width: 1920, height: 1080 };
page.open("http://www.google.com", function start(status) {
page.render('google_home.png');
phantom.exit();
но когда я устанавливаю размер как
page.viewportSize = { width: 320, height: 780 };
результирующая ширина изображения составляет 602 пикселей.
Как установить ширину для снятия скриншота с помощью функции page.render()?
2 ответа
На самом деле я не могу. потому что " http://www.google.com/" принудительно устанавливает минимальную ширину документа, превышающую 600 пикселей. поэтому, когда я звоню page.render()
он отображает весь документ шириной не 320 пикселей.
Если минимальная ширина страницы (или фиксированная ширина) больше, чем размер области просмотра, то PhantomJS отобразит снимок экрана, ширина которого равна ширине страницы (тела).
Конечно, вы можете обрезать скриншот, установив соответствующий размер и положение с помощью page.clipRect
,
Вы также можете поэкспериментировать с zoomFactor
,