PDFファイルに利用されている画像をJPG変換します。
以下のライブラリが必要です。
pdfbox-2.0.7.jar
commons-logging-1.2.jar
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Iterator;
import javax.imageio.ImageIO;
import org.apache.pdfbox.cos.COSName;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageTree;
import org.apache.pdfbox.pdmodel.PDResources;
import org.apache.pdfbox.pdmodel.graphics.PDXObject;
import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
public class TestPDFBoxPdfToJpg {
public static void main(String[] args) {
//PDFドキュメントをロード
try (PDDocument document = PDDocument.load(new File("D:\\test\\pdf\\e-ticket.pdf"));) {
//ページのリストから最初の1ページを取得する
PDPageTree pageTree = document.getDocumentCatalog().getPages();
PDPage page = pageTree.get(0);
//ページからリソースを取得し、最初のイメージを取得する。
PDResources resources = page.getResources();
Iterator<COSName> ite = resources.getXObjectNames().iterator();
int i = 0;
while (ite.hasNext()) {
COSName name = ite.next();
//取得したイメージをファイルに出力
PDXObject xobject = resources.getXObject(name);
if (xobject instanceof PDImageXObject) {
PDImageXObject image2 = (PDImageXObject) resources.getXObject(name);
ImageIO.write(image2.getImage(), "jpg", new FileOutputStream("D:\\test\\pdf\\e-ticket" + i + ".jpg"));
}
i++;
}
} catch (IOException e) {
e.printStackTrace();
}
}
}