Convert PDF to JPG
JPedal provides several methods to allow the conversion of a PDF file or directory of PDF files into JPG. Java examples use the ConvertPagesToImages and JpegEncoderOptions classes.
Convert PDF to JPG from Command Line or another language
java -jar jpedal.jar --convert "inputFileOrDir" "outputDir" jpg
Convert PDF to JPG in Java with convenience static method
ConvertPagesToImages.writeAllPagesAsImagesToDir("inputFileOrDir", "outputDir" , "jpg", 1.33f);
Convert PDF to JPG in Java with control over the image output
ConvertPagesToImages convert = new ConvertPagesToImages("/path/to/file.pdf");
try {
if (convert.openPDFFile()) {
for(int page = 1; page <= convert.getPageCount(); page++) {
final BufferedImage bi = convert.getPageAsImage(page);
final File out = new File("/path/to/output/" + page + ".jpg");
// Setters to control output (example with compression)
final JpegEncoderOptions options = new JpegEncoderOptions();
options.setQuality(90); //Default is 75. No compression is 100
JDeli.write(bi, options, out);
}
}
} catch (PdfException | IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
convert.closePDFfile();
Convert PDF to JPG in Java with control over the page range of the output
ConvertPagesToImages convert = new ConvertPagesToImages("/path/to/file.pdf");
// setPageRange gives you the ability to chose the pages you'd like using '-' or ':' for range
// and ',' to move to the next range or you can simply put null for all the pages
convert.setPageRange(new PageRanges("1-5,8:10,15"));
// Above will give us pages 1 to 5(inclusive),8 to 10(inclusive) and 15
try {
if (convert.openPDFFile()) {
convert.getPageRange().forEachRemaining(page -> {
try {
final BufferedImage bi = convert.getPageAsImage(page);
final File out = new File("/path/to/output/" + page + ".jpg");
JDeli.write(bi, options, out);
} catch (Exception e) {
e.printStackTrace();
}
});
}
} catch (PdfException e) {
e.printStackTrace();
}
convert.closePDFfile();
Convert PDF to JPG thumbnails in Java with control over output image dimensions
ConvertPagesToImages.
writeAllPagesAsImagesToDir("inputFileOrDir", "outputDir" , "jpg", new int[]{width,height});
or
ConvertPagesToImages convert = new ConvertPagesToImages("/path/to/file.pdf");
//fit with aspect ratio preserved (width will be 300 or height will be 400)
convert.setFitToSize(new int[]{300,400});
try {
if (convert.openPDFFile()) {
for (int page = 1; page <= convert.getPageCount(); page++) {
final BufferedImage bi = convert.getPageAsImage(page);
final File out = new File("/path/to/output/" + page + ".jpg");
JDeli.write(bi, OutputFormat.JPEG, out);
}
}
} catch (PdfException | IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
convert.closePDFfile();
Convert PDF to JPG thumbnails in Java with control over scaling
ConvertPagesToImages convert = new ConvertPagesToImages("/path/to/file.pdf");
convert.setPageScaling(1.33f); //which gives same size as Acrobat at 100%
try {
if (convert.openPDFFile()) {
for (int page = 1; page <= convert.getPageCount(); page++) {
final BufferedImage bi = convert.getPageAsImage(page);
final File out = new File("/path/to/output/" + page + ".jpg");
JDeli.write(bi, OutputFormat.JPEG, out);
}
}
} catch (PdfException | IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
convert.closePDFfile();
Convert PDF to JPG in Java with a password-protected PDF file
ConvertPagesToImages convert = new ConvertPagesToImages("/path/file.pdf");
convert.setPassword("password");
try {
if (convert.openPDFFile()) {
for (int page = 1; page <= convert.getPageCount(); page++) {
final BufferedImage bi = convert.getPageAsImage(page);
final File out = new File("/path/to/output/" + page + ".jpg");
JDeli.write(bi, OutputFormat.JPEG, out);
}
}
} catch (PdfException | IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
convert.closePDFfile();
If you are looking for upscaling or more complex control over the PDF to JPG conversion, ConvertPagesToHiResImages class has lots of additional options
Just click a button below if you have more questions or need any help