package filetools.pdf; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.imageio.ImageIO; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; public class PdfToImageConverter { static String folder; static String newFileName; public static void main(String args[]) { try { folder = utilities.BrowserDialogs.chooseFolder(); // TODO: create a method which tests if the file is an // ok-to-the-end-PDF to work with if (folder != null) { ArrayList<File> files = utilities.ListsFiles.getPaths(new File(folder), new ArrayList<File>()); if (files != null) { for (int i = 0; i < files.size(); i++) { if (files.get(i) != null) { try { System.out.println(files.get(i) .getCanonicalPath()); if (PdfAnalysis.testPdfOk(files.get(i))) { PDDocument testfile = PDDocument .load(files.get(i)); // to create new file eliminate the // ".pdf"-extension int lenOld = files.get(i) .toString().length(); int lenNew = lenOld - 4; newFileName = (files.get(i) .toString().substring(0, lenNew)); convertToJpegPages(testfile); } } catch (IOException e) { System.out.println(e); } } } } } } catch (IOException e) { System.out.println(e); } } @SuppressWarnings("unchecked") private static void convertToJpegPages(PDDocument testfile) throws IOException { int j = 0; List<PDPage> pages = testfile .getDocumentCatalog() .getAllPages(); for (PDPage page : pages) { BufferedImage img = page .convertToImage( BufferedImage.TYPE_INT_RGB, 72); ImageIO.write(img, "jpg", new File(newFileName + "_page_" + j + ".jpg")); j++; } } }