这是脚本代码:
var page = require('webpage').create();
page.paperSize = {
format: 'A4',
orientation: "landscape"
};
page.open('http://www.google.com', function () {
var arr = page.evaluate(function () {
var pageWidth = document.body.clientWidth;
var pageHeight = document.body.clientHeight;
return [pageWidth, pageHeight];
});
console.log('pagwWidth: ' + arr[0] + '; pageHeight: ' + arr[1]);
page.render('google.pdf');
phantom.exit();
});
我正在尝试获取document.body页面的clientWidth和clientHeight。当我执行这个脚本时,我得到了以下值:
pagwWidth: 400; pageHeight: 484
为什么上面的宽度是400px?我想我应该更广泛。
感谢您的回复。但后来我不明白以下事情。当我使用viewportSize = {width:1024,height:800}
时var page = require('webpage').create();
page.paperSize = {
format: 'A4',
orientation: "landscape"
};
page.viewportSize = {width: 1024, height: 800};
page.open('http://www.google.com', function () {
page.render('google.pdf');
phantom.exit();
});
我收到以下文件:
但是如果我使用viewportSize = {width:400,height:400}
var page = require('webpage').create();
page.paperSize = {
format: 'A4',
orientation: "landscape"
};
page.viewportSize = {width: 400, height: 400};
page.open('http://www.google.com', function () {
page.render('google.pdf');
phantom.exit();
});
我得到了同样的结果:
所以我不明白viewportSize如何影响视图?
答案 0 :(得分:12)
文档受视口大小的影响,而不受纸张大小的影响。想一想,网页浏览器中的网页与您当前的打印机设置无关。
如果您想影响页面布局,请使用viewportSize
:
page.viewportSize = { width: 1024, height: 800 };