برای این کار من با کتابخانه های Ghost4J و Apache PDFBox کار کردم که Ghost4J برای pdf های فارسی خیلی بهتر عمل می کنه، نمونه کد Ghost4J:
PDFDocument document = new PDFDocument();
File pdf = new File("sample.pdf");
document.load(pdf);
SimpleRenderer renderer = new SimpleRenderer();
// set resolution (in DPI)
renderer.setResolution(140);
List<Image> images = renderer.render(document);
for (int i = 0; i < images.size(); i++) {
ImageIO.write((RenderedImage) images.get(i), "jpg",
new File("page"+(i + 1) + ".jpg"));
System.out.println("convert page "+(i+1));
}
نمونه کد Apache PDFBox:
PDDocument pdf = PDDocument.load(new FileInputStream("sample.pdf"), true);
PDFImageWriter imageWriter = new PDFImageWriter();
imageWriter.writeImage(pdf, "jpg", "", 1, pdf.getNumberOfPages(), "sample");