将pdf转化为图片的方法
package com. pdf. change2img ; import org. apache. pdfbox. pdmodel. PDDocument ;
import org. apache. pdfbox. rendering. PDFRenderer ;
import org. springframework. util. Base64Utils ; import javax. imageio. ImageIO ;
import java. awt. image. BufferedImage ;
import java. io. ByteArrayOutputStream ;
import java. io. IOException ;
import java. util. ArrayList ;
import java. util. List ;
public class PdfToImageUtil { private static final Integer DPI = 100 ; private static final String IMG_TYPE = "png" ; public static List < byte [ ] > pdfToImage ( byte [ ] fileContent) throws IOException { List < byte [ ] > result = new ArrayList < > ( ) ; try ( PDDocument document = PDDocument . load ( fileContent) ) { PDFRenderer renderer = new PDFRenderer ( document) ; for ( int i = 0 ; i < document. getNumberOfPages ( ) ; ++ i) { BufferedImage bufferedImage = renderer. renderImageWithDPI ( i, DPI ) ; ByteArrayOutputStream out = new ByteArrayOutputStream ( ) ; ImageIO . write ( bufferedImage, IMG_TYPE , out) ; result. add ( out. toByteArray ( ) ) ; } } return result; } public static List < String > pdfToImage2 ( String base64PDF) throws IOException { List < String > result = new ArrayList < > ( ) ; byte [ ] decodePDF = Base64Utils . decode ( base64PDF. getBytes ( ) ) ; try ( PDDocument document = PDDocument . load ( decodePDF) ) { PDFRenderer renderer = new PDFRenderer ( document) ; for ( int i = 0 ; i < document. getNumberOfPages ( ) ; ++ i) { BufferedImage bufferedImage = renderer. renderImageWithDPI ( i, DPI ) ; ByteArrayOutputStream out = new ByteArrayOutputStream ( ) ; ImageIO . write ( bufferedImage, IMG_TYPE , out) ; result. add ( Base64Utils . encodeToString ( out. toByteArray ( ) ) ) ; } } return result; }
}