将pdf文档转换成高清图片

将pdf文档转换成高清图片


关于pdf转换成高清图片,网上有不少资料,但测试过后发现多数不可用,甚至出现pdf图片格式错乱等问题。
以下pdf转高清图片核心代码是经过本人验证并应用与实践项目的。请惠存!

  File file = new File(pdfPath);
        PDDocument pdDocument;
        try {
            pdDocument = PDDocument.load(file);
            List<PDPage> pdPages = pdDocument.getDocumentCatalog().getAllPages();
            /* dpi越大转换后越清晰,相对转换速度越慢 */
            List<File> files = new ArrayList<>();
            for (int i = 0; i < pdDocument.getNumberOfPages(); i++) {
                PDPage page = pdPages.get(i);
                String imagePath = pdfPath.replace(".pdf", "") + "_" + i + ".png";
                File dstFile = new File(imagePath);
                //300 是缩放比例,可调整,数值越高转换越慢
                BufferedImage image = page.convertToImage(BufferedImage.TYPE_INT_RGB, 300);
                ImageIO.write(image, "png", dstFile);
                files.add(dstFile);
            }

            //TODO 	到此我们已经将pdf文档按页拆分成高清的pdf文件,如果业务有需要可以将所有的图片整合成一张图片
            System.out.println("PDF文档转PNG图片成功!");
        } catch (IOException e) {
            e.printStackTrace();
        }

你可能感兴趣的:(java)