PDFBox サンプルプログラム

目次

PDFからページの画像を取得する

ソフトマスクのあるページで取得したJPEGがそのまま使えなかったので、こちらからページのイメージを取得する.


try {
    //PDFドキュメントをロード
    PDDocument document = PDDocument.load("hogehoge.pdf");
    List pageList = (List) document.getDocumentCatalog().getAllPages();
    //ページのリストからそれぞれのページで処理を実施
    for (PDPage page : pageList) {
	    //ページからリソースを取得し、全てのイメージを取得する。
	    PDResources resources = page.getResources();
	    try {
		    Map images = resources.getImages();
		    if (images != null) {
		        Iterator> ite = images.entrySet().iterator();
		        while (ite.hasNext()) {
		            PDXObjectImage image = ite.next().getValue();
		            //取得したイメージをファイルに出力
		            image.write2file(System.currentTimeMillis() + "hogehoge");
		        }
		    }
	    } finally {
	    	//不要なキャッシュのクリア(これをしないとメモリ不足エラーが発生する可能性がある)
	    	resources.clear();
	    }
    }
    document.close();
} catch (IOException e) {
    e.printStackTrace();
}