import org.apache.commons.io.FileUtils; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.rendering.ImageType; import org.apache.pdfbox.rendering.PDFRenderer; import org.apache.pdfbox.tools.imageio.ImageIOUtil; import javax.swing.*; import javax.swing.filechooser.FileFilter; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; public class Main { public static void main(String[] args) throws IOException { String scanPath = System.getProperty("user.home") + File.separatorChar + "Desktop" + File.separatorChar + "scan"; File jpgDirectory = new File(scanPath + File.separatorChar + "jpg"); File scanDirectory = new File(scanPath); if (!scanDirectory.exists()) { scanDirectory.mkdir(); } if (!jpgDirectory.exists()) { jpgDirectory.mkdir(); } else { FileUtils.cleanDirectory(jpgDirectory); } final JFileChooser fc = new JFileChooser(); fc.setMultiSelectionEnabled(false); fc.setFileFilter(new FileFilter() { @Override public boolean accept(File f) { return f.getName().endsWith(".pdf"); } @Override public String getDescription() { return "PDF files (*.PDF)"; } }); fc.showOpenDialog(null); File pdf = fc.getSelectedFile(); if (pdf == null) { return; } PDDocument document = PDDocument.load(pdf); PDFRenderer pdfRenderer = new PDFRenderer(document); for (int page = 0; page < document.getNumberOfPages(); ++page) { BufferedImage bim = pdfRenderer.renderImageWithDPI(page, 200, ImageType.RGB); ImageIOUtil.writeImage(bim, jpgDirectory.getPath() + File.separatorChar + "prova." + String.format("%04d", page + 1) + ".jpg", 200); } document.close(); } }