Convert PDF to TIFF
JPedal provides several methods to allow the conversion of a PDF file or directory of PDF files into TIFF. Java examples use the ConvertPagesToImages and TiffEncoderOptions classes.
Convert PDF to TIFF from Command Line or another language
Converting all pages to images
java -jar jpedal.jar --convert "inputFileOrDir" "outputDir" tiff
You can also provide different settings to adjust the conversion.
java -jar jpedal.jar --convert "inputFileOrDir" "outputDir" tiff ScalingAsFloat
java -jar jpedal.jar --convert "inputFileOrDir" "outputDir" tiff ScalingAsFloat PageRange
The use of the named variables is detailed below.
- ScalingAsFloat: A float value specifying the scaling applied to the output. This is the view scaling divided by 100, for instance 150% becomes 1.5
- PageRange: The range of pages of convert. This follows the same rules as SetOfIntegerSyntax.
This can be a series of comma separated values which are either single page number or range between to values using a dash. For example “1,3,4-7” would give pages 1,3,4,5,6,7
You can also add JVM flags for more control over the output. These include,
- Setting Compression (image.tiff.compression)
- Setting DPI (image.tiff.dpi)
- Allowing multipage tiff output (org.jpedal.multipage_tiff)
All of these properties can be used in one of two ways.
- Set a system property within your code
For example,System.setProperty("org.jpedal.multipage_tiff", "true");
- Add the following property to the command line
For example,java -Dorg.jpedal.multipage_tiff=true -jar jpedal.jar --convert "inputFileOrDir" "outputDir"
Convert PDF to TIFF in Java with convenience static method
ConvertPagesToImages.writeAllPagesAsImagesToDir(
"inputFileOrDir",
"outputDir",
"tiff",
1.33f);
Convert PDF to TIFF 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 + ".tiff");
// Setters to control output (example with compression)
final TiffEncoderOptions options = new TiffEncoderOptions();
options.setCompressionFormat(TiffCompressionFormat.DEFLATE);
options.setResolutionUnit(TiffResolutionUnit.INCH);
options.setXResolution(300);
options.setYResolution(300);
JDeli.write(bi, options, out);
}
}
} catch (PdfException | IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
convert.closePDFfile();
Convert PDF to TIFF 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 + ".tiff");
JDeli.write(bi, options, out);
} catch (Exception e) {
e.printStackTrace();
}
});
}
} catch (PdfException e) {
e.printStackTrace();
}
convert.closePDFfile();
Convert PDF to TIFF thumbnails in Java with control over output image dimensions
ConvertPagesToImages.writeAllPagesAsImagesToDir(
"inputFileOrDir",
"outputDir",
"tiff",
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 + ".tiff");
JDeli.write(bi, OutputFormat.TIFF, out);
}
}
} catch (PdfException | IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
convert.closePDFfile();
Convert PDF to TIFF 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 + ".tiff");
JDeli.write(bi, OutputFormat.TIFF, out);
}
}
} catch (PdfException | IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
convert.closePDFfile();
Convert PDF to TIFF 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 + ".tiff");
JDeli.write(bi, OutputFormat.TIFF, 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 TIFF conversion, ConvertPagesToHiResImages class has lots of additional options