pdf转图片

作者: 星钻首席小管家 | 来源:发表于2022-07-08 13:51 被阅读0次

1.添加依赖

<dependency>
            <groupId>org.apache.pdfbox</groupId>
            <artifactId>fontbox</artifactId>
            <version>2.0.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.pdfbox</groupId>
            <artifactId>pdfbox</artifactId>
            <version>2.0.1</version>
        </dependency>

2.demo

public class PdfManage {

    private String path = System.getProperty("user.dir") + "/pdf2jpg/";

    public static void main(String[] args) throws Exception {
        String filePath = "C:\\Users\\Administrator\\Desktop\\期刊项目\\Single stain hyperspectral imaging for accurate " +
                "fungal pathogens identification and quantification.pdf";
        pdfToImageFile(filePath);
    }

    static void pdfToImageFile(String filePath) throws Exception {
        PDDocument doc = null;
        ByteArrayOutputStream os = null;
        InputStream stream = null;
        OutputStream out = null;
        try {
            // pdf路径
            stream = new FileInputStream(filePath);
            // 加载解析PDF文件
            doc = PDDocument.load(stream);
            PDFRenderer pdfRenderer = new PDFRenderer(doc);
            PDPageTree pages = doc.getPages();
            int pageCount = pages.getCount();
            for (int i = 0; i < pageCount; i++) {
                BufferedImage bim = pdfRenderer.renderImageWithDPI(i, 200);
                os = new ByteArrayOutputStream();
                ImageIO.write(bim, "jpg", os);
                byte[] dataList = os.toByteArray();
                // jpg文件转出路径
                File file = new File("D:\\download\\pdf\\tu_" + i + ".jpg");
                if (!file.getParentFile().exists()) {
                    // 不存在则创建父目录及子文件
                    file.getParentFile().mkdirs();
                    file.createNewFile();
                }
                out = new FileOutputStream(file);
                out.write(dataList);
            }
        } catch (Exception e) {
            e.printStackTrace();
            throw e;
        } finally {
            if (doc != null) doc.close();
            if (os != null) os.close();
            if (stream != null) stream.close();
            if (out != null) out.close();
        }
    }
}

相关文章

网友评论

    本文标题:pdf转图片

    本文链接:https://www.haomeiwen.com/subject/ochvbrtx.html