[Java] PDF to JPG
Jul 23rd, 2007No Comments
http://forum.java.sun.com/thread.jspa?threadID=359395&start=30&tstart=0
Here is a quick test sample that I ran with for PDF to JPG conversion.
I only had to convert the 1st page, so if you wanted multi-pages you will have to adapt the above example.
I use the ImageIO and jpedal jars.
Quick overview.
give the decoder the filename of the pdf to open
Grab the 1st page, and resize it to a thumbnail version
save the image.
import org.jpedal.*; import java.io.*; import javax.imageio.*; import javax.imageio.stream.*; import java.awt.Graphics; import java.awt.Image; import java.awt.image.BufferedImage; import java.awt.image.RenderedImage; import java.util.*; public class PdfToJpgTest { public static void PDFToJpg(String filepath) { try { PdfDecoder decoder = new PdfDecoder(); decoder.openPdfFile(filepath); if (decoder.isFileViewable()) { //just grab the first page, and render it as an image. BufferedImage thumbnailImage = getThumbnailImage(decoder.getPageAsImage(1)); saveImage(thumbnailImage,"1.jpg"); } } catch(Exception err) { err.printStackTrace(); } } public static void saveImage(Image image, String fileName) { File fileToSave = new File(fileName); try { ImageIO.write((RenderedImage)image,"jpg", fileToSave); } catch(Exception err) { err.printStackTrace(); } } private static BufferedImage getThumbnailImage(BufferedImage image) { BufferedImage resizedImage = null; Graphics g = image.getGraphics(); int resizeWidth = 0; int resizeHeight = 0; resizeHeight = 256; resizeWidth = (image.getWidth() * resizeHeight) / image.getHeight(); resizedImage = new BufferedImage(resizeWidth, resizeHeight, BufferedImage.TYPE_INT_RGB); resizedImage.createGraphics().drawImage(image, 0, 0, resizeWidth, resizeHeight, null); return resizedImage; } public static void main(String args[]) { System.out.println("Staring PDF to JPG test"); PDFToJpg("Winter 2006.pdf"); System.out.println("Ending PDF to JPG test"); } }

