📜  PhantomJS-屏幕截图

📅  最后修改于: 2020-10-21 05:38:17             🧑  作者: Mango


PhantomJS在获取网页屏幕快照并将网页转换为PDF方面非常有用。我们在这里给出了一个简单的示例来演示其工作原理。

var page = require('webpage').create();
page.open('http://phantom.org/',function(status){
   page.render('phantom.png');
   phantom.exit();
});

执行以上程序,输出将保存为phantom.png

最佳解决方案

将网页转换成PDF

PhantomJS还可帮助将网页添加为页眉和页脚,将其转换为PDF。请看以下示例,以了解其工作原理。

var wpage = require('webpage').create(); 
var url = "https://en.wikipedia.org/wiki/Main_Page"; 
var output = "test.pdf"; 

wpage.paperSize = { 
   width: screen.width+'px', 
   height: '1500px', 
   
   margin: {
      'top':'50px', 
      'left':'50px', 
      'rigtht':'50px' 
   }, 
   orientation:'portrait', 
   header: { 
      height: "1cm", 
      contents: phantom.callback(function(pageNumber, nPages) { 
         return "
Header " + pageNumber + " / " + nPages + "
"; }) }, footer: { height: "1cm", contents: phantom.callback(function(pageNumber, nPages) { return "
Footer " + pageNumber + " / " + nPages + "
"; }) } } wpage.open(url, function (status) { if (status !== 'success') { console.log('Page is not opening'); phantom.exit(); } else { wpage.render(output); phantom.exit(); } });

上面的程序生成以下输出

The above will convert the page into pdf and will be saved in test.pdf

将画布转换为图像

Phantomjs可以轻松地将Canvas转换为图像。请看以下示例,以了解其工作原理。

var page = require('webpage').create(); 
page.content = ''; 

page.evaluate(function() {
   var context,e1; 
   el = document.getElementById('surface'); 
   
   context = el.getContext('2d'); 
   context.font = "30px Comic Sans MS"; 
   context.fillStyle = "red"; 
   context.textAlign = "center"; 
   context.fillText("Welcome to PhantomJS ", 200, 200); 
   
   document.body.style.backgroundColor = 'white'; 
   document.body.style.margin = '0px'; 
}); 
page.render('canvas.png'); 
phantom.exit(); 

上面的程序生成以下输出

欢迎Phantomjs