giordanocardillo icon

PDFBox PDF to JPG

giordanocardillo | PRO | 08/24/17 07:47:50 PM UTC | 0 ⭐ | 237 👁️ | Never ⏰ | []
Java |

1.73 KB

|

None

|

0 👍

/

0 👎

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