Created
September 22, 2012 20:50
-
-
Save Fabryz/3767794 to your computer and use it in GitHub Desktop.
Phantomjs - render html files contained in dir to png
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var page = require('webpage').create(), loadInProgress = false, fs = require('fs'); | |
var htmlFiles = new Array(); | |
console.log(fs.workingDirectory); | |
var curdir = fs.list(fs.workingDirectory); | |
// loop through files and folders | |
for(var i = 0; i< curdir.length; i++) | |
{ | |
var fullpath = fs.workingDirectory + fs.separator + curdir[i]; | |
// check if item is a file | |
if(fs.isFile(fullpath)) | |
{ | |
// check that file is html | |
if(fullpath.indexOf('.html') != -1) | |
{ | |
// show full path of file | |
console.log('File path: ' + fullpath); | |
htmlFiles.push(fullpath); | |
} | |
} | |
} | |
console.log('Number of Html Files: ' + htmlFiles.length); | |
// output pages as PNG | |
var pageindex = 0; | |
var interval = setInterval(function() { | |
if (!loadInProgress && pageindex < htmlFiles.length) { | |
console.log("image " + (pageindex + 1)); | |
page.open(htmlFiles[pageindex]); | |
} | |
if (pageindex == htmlFiles.length) { | |
console.log("image render complete!"); | |
phantom.exit(); | |
} | |
}, 250); | |
page.onLoadStarted = function() { | |
loadInProgress = true; | |
console.log('page ' + (pageindex + 1) + ' load started'); | |
}; | |
page.onLoadFinished = function() { | |
loadInProgress = false; | |
page.render("images/output" + (pageindex + 1) + ".png"); | |
console.log('page ' + (pageindex + 1) + ' load finished'); | |
pageindex++; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment