PDFBox サンプルプログラム

目次

PDFから解像度を取得する


try {

    //PDFドキュメントをロード
    PDDocument document = PDDocument.load("hogehoge.pdf");

    //ページのリストから最初の1ページを取得する
    PDPage page = (PDPage) document.getDocumentCatalog().getAllPages().get(0);

    //ページからリソースを取得し、全てのイメージを取得する。
    PDResources resources = page.getResources();
    Map images = resources.getImages();
    if (images != null) {
        Iterator imageIter = images.entrySet().iterator();
        while (imageIter.hasNext()) {
            String key = (String) imageIter.next();
            PDXObjectImage image = (PDXObjectImage) images.get(key);
            PDRectangle cropBox = page.findCropBox();
            if (cropBox != null) {
                //dpiの算出(pdfのデフォルトdpiは72)
                int dpi = Math.round(image.getHeight() * 72 / cropBox.getHeight());
                //dpi
                System.out.println("dpi:" + dpi);
            }
        }
    }
    document.close();
} catch (IOException e) {
    e.printStackTrace();
}