【java】ppt转图片

33 阅读1分钟

用的 pdfbox,不足:缺少字体,有一些文档中的东西不显示,奇奇怪怪的图层之类的,只能勉强用一下

maven 引用

<!-- PDF转 图片 -->
<!-- https://mvnrepository.com/artifact/org.codehaus.izpack/izpack-panel -->
<dependency>
    <groupId>org.codehaus.izpack</groupId>
    <artifactId>izpack-panel</artifactId>
    <version>5.1.1</version>
</dependency>

<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>pdfbox</artifactId>
    <version>2.0.6</version>
</dependency>
<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>pdfbox-tools</artifactId>
    <version>2.0.6</version>
</dependency>

直接上代码

public static void pdf2png(String fileAddress, String filename, String type) {
    long startTime = System.currentTimeMillis();
    // 将文件地址和文件名拼接成路径 注意:线上环境不能使用\拼接
    File file = new File(fileAddress + "\" + filename + ".pdf");
    try {
        // 写入文件
        PDDocument doc = PDDocument.load(file);
        PDFRenderer renderer = new PDFRenderer(doc);
        int pageCount = doc.getNumberOfPages();
        for (int i = 0; i < pageCount; i++) {
            // dpi为144,越高越清晰,转换越慢
            BufferedImage image = renderer.renderImageWithDPI(i, 300); // Windows native DPI
            // 将图片写出到该路径下
            ImageIO.write(image, type, new File(fileAddress + "\" + filename + "_" + (i + 1) + "." + type));
        }
        long endTime = System.currentTimeMillis();
        System.out.println("共耗时:" + ((endTime - startTime) / 1000.0) + "秒");  //转化用时
    } catch (IOException e) {
        e.printStackTrace();
    }
}
public static void main(String[] args) {
    pdf2png("E:\wx\WeChat Files\wxid_9466344663412\FileStorage\File\2024-02", "中潮智脑", "png");
}