java中生成pdf首页图片预览

本文介绍如何在Java项目中使用pdf-renderer库生成PDF文档的首页预览图片,以便在页面上以img标签展示,点击后可查看完整PDF或下载。方法适用于Spring框架,涉及StreamUtils的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在项目有上传pdf的需求,然而上传完图片可以在页面上通过img显示上传的图片,于是就想到通过img显示pdf的首页当作预览吧,点击图片再打开新窗口显示完整pdf文件或者直接下载。

 

pdf-renderer可以实现此需求

 

@RequestMapping(value = "/pdf")
public void pdfrender(HttpServletResponse response) throws IOException {

    int pagen = 0;
    File file = new File("E:/pan/example.pdf");

    InputStream inputStream = new FileInputStream(file);
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    StreamUtils.copy(inputStream, byteArrayOutputStream);
    ByteBuffer buf = ByteBuffer.wrap(byteArrayOutputStream.toByteArray());

    PDFFile pdffile = new PDFFile(buf);
    PDFPage page = pdffile.getPage(pagen);
    int width = (int) page.getBBox().getWidth();
    int height = (int) page.getBBox().getHeight();

    Rectangle rect = new Rectangle(0, 0, width, height);

    BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
    Graphics2D bufImageGraphics = bufferedImage.createGraphics();

    Image image = page.getImage(width, height, rect, null, true, true);

    bufImageGraphics.drawImage(image, 0, 0, null);

    ImageIO.write(bufferedImage, "jpg", response.getOutputStream());
}

 

此方法是基于spring框架写的,其中StreamUtils也是spring中的方法

 

上面方法的pdf文件是以File类型拿到的,如果拿到的就是InputStream,则可跳过FileInputStream转换的过程,如果以其它形式拿到,则先做相应的转化即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值