package com.sunbloger.pdf2jpg.controller; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.util.HashMap; import java.util.Map; import javax.imageio.ImageIO; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.rendering.PDFRenderer; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; @Controller @RequestMapping(value = "/japi") public class render { @RequestMapping(value = "/convert", method = RequestMethod.GET) public @ResponseBody Map<String, Object> convert () throws Exception { Map<String, Object> responseMap = new HashMap<String, Object>(); PDDocument doc = null; InputStream stream = null; FileOutputStream fos = null; ByteArrayOutputStream baos = null; try { // 读入 PDF 文件 stream = new FileInputStream("D:\\workspace-springboot\\1.pdf"); doc = PDDocument.load(stream); // 渲染 PDFRenderer pdfRenderer = new PDFRenderer(doc); BufferedImage bufferedImage = pdfRenderer.renderImageWithDPI(0, 300); pdfRenderer = null; // 写入 JPG 文件 baos = new ByteArrayOutputStream(); ImageIO.write(bufferedImage, "jpg", baos); byte[] dataList = baos.toByteArray(); baos = null; File file = new File("D:\\workspace-springboot\\1.jpg"); fos = new FileOutputStream(file); fos.write(dataList); fos.close(); fos = null; file = null; responseMap.put("suc", 1); responseMap.put("info", "convert sucess."); } catch (Exception e) { throw e; } return responseMap; } }
<dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId> <version>2.0.27</version> </dependency>