java PDF转图片

pdf转图片
创建一个maven项目
添加icepdf依赖

<!-- https://mvnrepository.com/artifact/org.icepdf.os/icepdf-core -->
<dependency>
      <groupId>org.icepdf.os</groupId>
      <artifactId>icepdf-core</artifactId>
      <version>6.2.2</version>
  </dependency>

代码实现如下:

复制代码
package com.jl.java.base.upload;

/**
 * @author :heyaolei
 * @date :2021/10/8
 */
import org.icepdf.core.pobjects.Document;
import org.icepdf.core.util.GraphicsRenderingHints;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.awt.image.RenderedImage;
import java.io.File;
import java.io.IOException;

/**
 * PDF 转 图片
 */
public class IcePdf {
    public static void pdf2Pic(String pdfPath, String path) throws Exception {
        Document document = new Document();
        document.setFile(pdfPath);
        //缩放比例
        float scale = 2.5f;
        //旋转角度
        float rotation = 0f;

        for (int i = 0; i < document.getNumberOfPages(); i++) {
            BufferedImage image = (BufferedImage)  document.getPageImage(i, GraphicsRenderingHints.SCREEN, org.icepdf.core.pobjects.Page.BOUNDARY_CROPBOX, rotation, scale);
            RenderedImage rendImage = image;
            try {
                //String imgName = i + ".png";
                File pdfFile =new File( pdfPath.trim());
                String imgName = pdfFile.getName();
                imgName =  imgName.substring(0,imgName.indexOf("."))+".png";
                System.out.println(imgName);
                File file = new File(path + imgName);
                ImageIO.write(rendImage, "png", file);
            } catch (IOException e) {
                e.printStackTrace();
            }
            image.flush();
        }
        document.dispose();
    }
    public static void main(String[] args) throws Exception {
        String filePath = "D:/Users/heyaolei/Desktop/useless/20211008/pdf/电子发票.pdf";
        pdf2Pic(filePath, "D:/Users/heyaolei/Desktop/useless/20211008/pdf/");
    }
}
复制代码

 

 

参考文档:https://www.jianshu.com/p/2242c0a4d348

posted on   周公  阅读(184)  评论(1编辑  收藏  举报

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示