Convert PDF to JPG
The JPedal Java PDF library converts PDF pages to JPG images — supporting single files, whole directories, specific page ranges, thumbnails, and password-protected PDFs, with no third-party dependencies.
New to JPedal? Add it to your project first: Maven dependency | Gradle dependency
JPEG is the most widely supported image format and produces compact files through lossy compression. It is the practical default for most PDF-to-image workflows where file size matters more than pixel-perfect quality.
JPedal uses JDeli for JPG output. JDeli outperforms standard ImageIO for JPG in benchmarks — it also provides standalone JPG reading and writing.
How do I convert a PDF to JPG from the command line?
JPedal can run as a standalone tool to convert a file or an entire directory in a single command:
java -jar jpedal.jar --convert "inputFileOrFolder" "outputFolder" jpg
You can also provide additional settings to control the output:
java -jar jpedal.jar --convert "inputFileOrFolder" "outputFolder" jpg ScalingAsFloat
java -jar jpedal.jar --convert "inputFileOrFolder" "outputFolder" jpg ScalingAsFloat PageRange
Replace ScalingAsFloat with a float value and PageRange with a page range string:
ScalingAsFloat: a float value specifying the scaling applied to the output. This is the view scaling divided by 100 — for instance, 150% becomes1.5PageRange: the range of pages to convert, following SetOfIntegerSyntax rules — for example,"1,3,4-7"gives pages 1, 3, 4, 5, 6, 7
What is the simplest way to convert a PDF to JPG in Java?
The static convenience method converts a whole file or directory in a single call, handling file opening and closing automatically:
ConvertPagesToImages.writeAllPagesAsImagesToDir(
"inputFileOrFolder",
"outputFolder",
"jpg",
1.33f);
How do I control the JPG output options when converting from PDF in Java?
To configure output settings — such as compression or quality — create a ConvertPagesToImages instance and apply an options object before writing each page:
ConvertPagesToImages convert = new ConvertPagesToImages("inputFile.pdf");
try {
if (convert.openPDFFile()) {
for(int page = 1; page <= convert.getPageCount(); page++) {
final BufferedImage bi = convert.getPageAsImage(page);
final File out = new File("outputFolder" + 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();
How do I convert specific pages of a PDF to JPG in Java?
Use setPageRange with a PageRanges string before opening the file. The range syntax supports single pages, dash-separated ranges, and comma-separated combinations:
ConvertPagesToImages convert = new ConvertPagesToImages("inputFile.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("outputFolder" + page + ".jpg");
JDeli.write(bi, options, out);
} catch (Exception e) {
e.printStackTrace();
}
});
}
} catch (PdfException e) {
e.printStackTrace();
}
convert.closePDFfile();
How do I create fixed-size JPG thumbnails from a PDF in Java?
The static method accepts a {width, height} array to produce thumbnails at a fixed size:
ConvertPagesToImages.writeAllPagesAsImagesToDir(
"inputFileOrFolder",
"outputFolder",
"jpg",
new int[] {width, height});
Alternatively, use setFitToSize on a ConvertPagesToImages instance — JPedal preserves the aspect ratio and fits within the given dimensions:
ConvertPagesToImages convert = new ConvertPagesToImages("inputFile.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("outputFolder" + page + ".jpg");
JDeli.write(bi, OutputFormat.JPEG, out);
}
}
} catch (PdfException | IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
convert.closePDFfile();
How do I set the scaling when converting a PDF to JPG in Java?
Use setPageScaling to control the output resolution. A value of 1.33f matches the default 100% view in Acrobat:
ConvertPagesToImages convert = new ConvertPagesToImages("inputFile.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("outputFolder" + page + ".jpg");
JDeli.write(bi, OutputFormat.JPEG, out);
}
}
} catch (PdfException | IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
convert.closePDFfile();
How do I convert a password-protected PDF to JPG in Java?
Call setPassword before openPDFFile — the rest of the conversion works identically to an unprotected file:
ConvertPagesToImages convert = new ConvertPagesToImages("inputFile.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("outputFolder" + page + ".jpg");
JDeli.write(bi, OutputFormat.JPEG, out);
}
}
} catch (PdfException | IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
convert.closePDFfile();
For the full API, see the ConvertPagesToImages and JpegEncoderOptions Javadocs.
For high-resolution output or advanced rendering control, ConvertPagesToHiResImages provides additional rendering options including DPI overrides, color space control, and rendering hints.
The pdf-to-image demo project on GitHub shows a complete working example with Maven configuration.
Frequently Asked Questions
Can I convert a whole directory of PDFs to JPG?
Yes. Pass a folder path instead of a file path to any method — JPedal processes all PDFs found in that directory.
Can I convert specific pages of a PDF to JPG?
Yes. Call convert.setPageRange(new PageRanges("1-5,8")) before openPDFFile(). The range syntax supports single pages, dash-separated ranges, and comma-separated combinations.
Can I convert a password-protected PDF to JPG?
Yes. Call convert.setPassword("yourPassword") before openPDFFile().
How do I control the output resolution or DPI?
Use convert.setPageScaling(1.33f) — 1.33f matches Acrobat’s 100% view. For fixed pixel dimensions use convert.setFitToSize(new int[]{width, height}) instead.
Does JPedal require any third-party dependencies?
No. JPedal is a self-contained Java library with no third-party runtime dependencies.
What is the default output resolution when converting a PDF to JPG?
JPedal’s default scaling is 1.0f, which produces 72 DPI output. Use setPageScaling(1.33f) to match Acrobat’s 100% view (approximately 96 DPI), or setPageScaling(2.0f) for 144 DPI output.
Can I convert a PDF to JPG without writing to disk?
Yes. Call convert.getPageAsImage(page) to get a BufferedImage for each page, then write it to any OutputStream using JDeli.write(bi, options, outputStream).