diff --git a/bridge.js b/bridge.js index aab26d5..517110f 100644 --- a/bridge.js +++ b/bridge.js @@ -133,6 +133,10 @@ controlpage.onAlert=function(msg){ case 'pageSetFn': page[request[3]] = eval('(' + request[4] + ')') break; + case 'pageSetPaperSize': + page.paperSize = JSON.parse(request[3]); + respond([id,cmdId,'pageSetPaperSizeDone']); + break; case 'pageSetViewport': page.viewportSize = {width:request[3], height:request[4]}; respond([id,cmdId,'pageSetViewportDone']); diff --git a/node-phantom.js b/node-phantom.js index 0091d54..31bc51f 100644 --- a/node-phantom.js +++ b/node-phantom.js @@ -43,7 +43,7 @@ module.exports={ callback(hasErrors,phantom); },100); } - + var server=http.createServer(function(request,response){ response.writeHead(200,{"Content-Type": "text/html"}); response.end('
'); - }).listen(function(){ + }).listen(function(){ var io=socketio.listen(server,{'log level':1}); - + var port=server.address().port; spawnPhantom(port,function(err,phantom){ if(err){ @@ -72,11 +72,11 @@ module.exports={ args.splice(1,0,cmdid); // console.log('requesting:'+args); socket.emit('cmd',JSON.stringify(args)); - + cmds[cmdid]={cb:callback}; cmdid++; } - + io.sockets.on('connection',function(socket){ socket.on('res',function(response){ // console.log(response); @@ -137,6 +137,9 @@ module.exports={ }, setViewport: function(viewport, callback) { request(socket, [id, 'pageSetViewport', viewport.width, viewport.height], callbackOrDummy(callback)); + }, + setPaperSize: function(paperSize, callback) { + request(socket, [id, 'pageSetPaperSize', JSON.stringify(paperSize)], callbackOrDummy(callback)); } } pages[id] = pageProxy; @@ -181,6 +184,7 @@ module.exports={ case 'pageEventSent': case 'pageFileUploaded': case 'pageSetViewportDone': + case 'pageSetPaperSizeDone': case 'pageEvaluatedAsync': cmds[cmdId].cb(null); delete cmds[cmdId]; @@ -215,17 +219,17 @@ module.exports={ }, _phantom: phantom }; - + callback(null,proxy); }); - + // An exit event listener that is registered AFTER the phantomjs process // is successfully created. var prematureExitHandler=function(code,signal){ console.warn('phantom crash: code '+code); server.close(); }; - + phantom.on('exit',prematureExitHandler); }); });