一、maven安装
<dependency> <groupId>org.icepdf.os</groupId> <artifactId>icepdf-core</artifactId> <version>6.2.2</version> </dependency>
二、Java代码实现
import org.icepdf.core.pobjects.Document; import org.icepdf.core.pobjects.Page; import org.icepdf.core.util.GraphicsRenderingHints; import javax.imageio.IIOImage; import javax.imageio.ImageIO; import javax.imageio.ImageWriter; import javax.imageio.stream.ImageOutputStream; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.util.Iterator; public class CapturePdfFirstPageUtil { /** * 生成一本书的缩略图 * * @param inputFile 需要生成缩略图的书籍的完整路径 * @param outputFile 生成缩略图的放置路径 */ public static void generateBookIamge(String inputFile, String outputFile) { Document document = null; try { float rotation = 0f; // 缩略图显示倍数,1表示不缩放,0.5表示缩小到50% float zoom = 0.8f; document = new Document(); document.setFile(inputFile); BufferedImage p_w_picpath = (BufferedImage) document.getPageImage(0, GraphicsRenderingHints.SCREEN, Page.BOUNDARY_CROPBOX, rotation, zoom); Iterator iter = ImageIO.getImageWritersBySuffix("jpg"); ImageWriter writer = (ImageWriter) iter.next(); FileOutputStream out = new FileOutputStream(new File(outputFile)); ImageOutputStream outImage = ImageIO.createImageOutputStream(out); writer.setOutput(outImage); writer.write(new IIOImage(p_w_picpath, null, null)); } catch (Exception e) { System.out.println("生成书的缩略图失败 : " + inputFile); System.out.println(e); } } public static void main(String[] args) { CapturePdfFirstPageUtil.generateBookIamge("C:\\Users\\Downloads\\我是帅子男一号.pdf", "C:\\Users\\Desktop\\帅子男一号.jpg"); } }