Eri*_*rik 4 screen-capture phantomjs
这是脚本代码:
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();
});
Run Code Online (Sandbox Code Playgroud)
我正在尝试获取document.body页面的clientWidth和clientHeight.当我执行这个脚本时,我得到了以下值:
pagwWidth: 400; pageHeight: 484
Run Code Online (Sandbox Code Playgroud)
为什么上面的宽度是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();
});
Run Code Online (Sandbox Code Playgroud)
我得到以下文件:

但是如果我使用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();
});
Run Code Online (Sandbox Code Playgroud)
我得到了相同的:

所以我不明白viewportSize如何影响视图?
Ari*_*yat 12
文档受视口大小的影响,而不受纸张大小的影响.想一想,网页浏览器中的网页与您当前的打印机设置无关.
使用viewportSize,如果你想影响页面布局:
page.viewportSize = { width: 1024, height: 800 };
Run Code Online (Sandbox Code Playgroud)