From 54c16118012845c63f4d67e9cbb7e095232cf219 Mon Sep 17 00:00:00 2001 From: Bojan Markovic Date: Wed, 1 Jan 2014 13:14:19 +0100 Subject: [PATCH] Added bitmap size and clipping to rasterize.js Added support for defining window/viewport size and eventual clipping to bitmap rasterization similar to how it is used with paper output. --- examples/rasterize.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/examples/rasterize.js b/examples/rasterize.js index 165bcfa7c..17b7d89dc 100644 --- a/examples/rasterize.js +++ b/examples/rasterize.js @@ -5,6 +5,8 @@ var page = require('webpage').create(), if (system.args.length < 3 || system.args.length > 5) { console.log('Usage: rasterize.js URL filename [paperwidth*paperheight|paperformat] [zoom]'); console.log(' paper (pdf output) examples: "5in*7.5in", "10cm*20cm", "A4", "Letter"'); + console.log(' image (png/jpg output) examples: "1920px" entire page, window width 1920px'); + console.log(' "800px*600px" window, clipped to 800x600'); phantom.exit(1); } else { address = system.args[1]; @@ -14,6 +16,20 @@ if (system.args.length < 3 || system.args.length > 5) { size = system.args[3].split('*'); page.paperSize = size.length === 2 ? { width: size[0], height: size[1], margin: '0px' } : { format: system.args[3], orientation: 'portrait', margin: '1cm' }; + } else if (system.args.length > 3 && system.args[3].substr(-2) === "px") { + size = system.args[3].split('*'); + if (size.length === 2) { + pageWidth = parseInt(size[0], 10); + pageHeight = parseInt(size[1], 10); + page.viewportSize = { width: pageWidth, height: pageHeight }; + page.clipRect = { top: 0, left: 0, width: pageWidth, height: pageHeight }; + } else { + console.log("size:", system.args[3]); + pageWidth = parseInt(system.args[3], 10); + pageHeight = parseInt(pageWidth * 3/4, 10); // it's as good an assumption as any + console.log ("pageHeight:",pageHeight); + page.viewportSize = { width: pageWidth, height: pageHeight }; + } } if (system.args.length > 4) { page.zoomFactor = system.args[4];