springMVC将PDF转换成图片

springMVC将PDF转换成图片

  1. maven代码
       <dependency>
           <groupId>org.apache.pdfbox</groupId>
           <artifactId>pdfbox</artifactId>
           <version>2.0.13</version>
       </dependency>
  1. java代码
@RequestMapping(value = "/file-to-img", method = RequestMethod.GET)
public ResponseEntity<byte[]> fileToImg(String pdfFile) throws IOException {
   
   if (StringUtils.isBlank(pdfFile)) {
   	return new ResponseEntity<>(HttpStatus.NOT_FOUND);
   }
   try (PDDocument pdDocument = PDDocument.load(new File(pdfFile)) {
   	PDFRenderer pdfRenderer = new PDFRenderer(pdDocument);
   	for (int i = 0; i < pdDocument.getNumberOfPages(); i++) {
   		BufferedImage image = pdfRenderer.renderImageWithDPI(i, 96f);
   		if (image != null) {
   			images.add(image);
   		}
   	}
   }
   // 拼接图片
   int width = 0, height = 0;
   for (BufferedImage image : images) {
   		width = image.getWidth() > width ? image.getWidth() : width;
   		height += image.getHeight();
   }
   BufferedImage pdfImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
   Graphics2D g2d = pdfImage.createGraphics();
   height = 0;
   for (BufferedImage image : images) {
   		g2d.drawImage(image, (width - image.getWidth()) / 2, height, image.getWidth(), image.getHeight(), null);
   		height += image.getHeight();
   }
   g2d.dispose();
   HttpHeaders headers = new HttpHeaders();
   headers.setContentType(MediaType.IMAGE_JPEG);
   try (ByteArrayOutputStream os = new ByteArrayOutputStream()) {
   		ImageIO.write(pdfImage, "jpg", os);
   		return new ResponseEntity<>(os.toByteArray(), headers, HttpStatus.OK);
   }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值