2
我使用PhantomJS 1.9.8創建了一個網站截圖,經歷了這個問題,創建的PNG比截圖中看到的實際網站高得多。關於PhantomJS在這裏不尊重視口尺寸,還沒有結束討論:https://github.com/ariya/phantomjs/issues/10619PhantomJS呈現的截圖比實際頁面高很多
但我認爲在我的情況下,它或多或少是字體大小和/或類型的問題,因爲您也可以在圖像中注意到。
也許有人面臨同樣的問題,可以提供一個可能的解決方法,因爲我需要截圖與網站本身具有相同的大小。
以下HTML用於頁:
<!DOCTYPE html>
<html>
<head>
<title>WSST</title>
<script src="js/test.js"></script>
</head>
<body style = "background-color: #FFFFFF">
<span class = "hey">Page Start</span>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br>
Page End
</body>
</html>
這是JS文件傳遞給PhantomJS:
var args = require('system').args;
var page = require('webpage').create();
var width = args[3];
var height = args[4];
page.viewportSize = {
width: width,
height: height
};
page.open(args[1], function(status) {
console.log('phantomjs: width ' + width + ' height ' + height);
console.log("Status: " + status);
if(status === "success") {
page.render(args[2] + '.png');
}
phantom.exit();
});
的參數的說明:
- URL的網站的渲染圖像
- 用戶的視口
3和4的高度實際上是由JavaScript文件中計算出的用戶的視區寬度「測試的
var body = document.body,
html = document.documentElement;
var height = Math.max(body.scrollHeight, body.offsetHeight,
html.clientHeight, html.scrollHeight, html.offsetHeight);
var width = Math.max(body.scrollWidth, body.offsetWidth,
html.clientWidth, html.clientWidth, html.offsetWidth);
任何幫助,這將不勝感激。
你試過添加一個reset.css樣式表嗎? –
我剛剛嘗試使用此https://code.google.com/p/phantomjs/source/browse/website/reset.css?r=cbdd80e98ea1eb29d5d3a9c65c84798b472b59b1這改變了我的本地瀏覽器頁面的佈局,但phantomjs圖片保持正確一樣。 –