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();
}
}
Comments