DEV Community

IDRSolutions
IDRSolutions

Posted on

Java PDF to JPEG conversion (Tutorial)

Why convert PDF files to JPEG images?

A PDF is a vector image (so it is rendered when you display it at whatever size you specify). A JPEG is a lossy bit-mapped file of a set size with fixed values. So to convert a PDF to a JPEG file we need to create a blank image and then draw the PDF onto this.

This process is usually done with a PDF tool such as Acrobat however, our Java PDF library includes added functionality. There are lots of Open Source and commercial tools in most major languages. If you are using Java, it is not a function that is built into Java – you will need an external application to do this such as our JPedal PDF library. JPedal is the best Java PDF library for developers.

How to convert PDF to JPEG in Java

  1. Download a trial copy of JPedal and add it to your IDE.
  2. Create a File handle, InputStream or URL pointing to the PDF file
  3. Include a password if file password protected
  4. Open the PDF file
  5. Iterate over the pages ## and the Java code to convert PDF to JPEG…
ConvertPagesToImages convert = new ConvertPagesToImages("inputFile.pdf");
//convert.setPassword("password");
if (convert.openPDFFile()) {
for (int page = 1; page <= convert.getPageCount(); page++) {
final BufferedImage bi = convert.getPageAsImage(page);
final File out = new File("outputFolder" + page + ".jpeg");
JDeli.write(bi, OutputFormat.JPEG, out);
}
}

convert.closePDFfile();
Enter fullscreen mode Exit fullscreen mode

Key points to remember

The usual reason for doing this conversion is to display the content as an image (e.g. a thumbnail on a website). However, there are things so remember:

  1. Bitmapped images do not scale very well (unlike Vector formats like PDF). So you need to get the size correct. If you make it too small you will not be able to zoom in without pixelation. If you make it too big you will make the download slower and need more memory.

  2. Bitmapped images do not have some of the other advantages of PDF files (like text search). You may need to add manual functionality to your application if you wish to have things like text highlighting.

  3. If you are doing it to print the PDF you will need a very large image to get a quality print at 300 or 600 dpi (what looks good on screen at 72dpi will not appear as crisp on a printout).

So long as you remember these, Java PDF to JPEG conversion is a straightforward process with a tool such as JPedal.

Top comments (0)

Some comments may only be visible to logged-in visitors. Sign in to view all comments. Some comments have been hidden by the post's author - find out more