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/"); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .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 中如何实现缓存的预热?