package com.patch.html_to_png_server.renderers; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import com.patch.html_to_png_server.renderers.helpers.ImageProcessor; /* * Renders using the Firefox 3 engine through "gnome-web-photo". * * For this renderer to function properly, "/usr/bin/gnome-web-photo" must * be present. It should accept two arguments (an HTML input filename and a * PNG output filename). * * The PNG output will be cropped using ImageProcessor.autocropImage(). */ public class FF3LinuxRenderer extends AbstractRenderer { public FF3LinuxRenderer() throws IOException { super(); } @Override public void generatePngFile() throws IOException { File midPngFile = File.createTempFile("html_to_png_ff3_mid", ".png"); midPngFile.deleteOnExit(); ProcessBuilder pb = new ProcessBuilder( "/usr/bin/gnome-web-photo", htmlFile.getAbsolutePath(), midPngFile.getAbsolutePath()); Process p = pb.start(); try { p.waitFor(); } catch (InterruptedException e) { p.destroy(); throw new IOException(e); } BufferedImage midImage = ImageIO.read(midPngFile); BufferedImage finalImage = (new ImageProcessor()).autocropImage(midImage); ImageIO.write(finalImage, "png", pngFile); midPngFile.delete(); } }