工具类-PDF转成图片
pdf转成图片工具类
- 引入依赖
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.20</version>
</dependency>
- 工具类代码
public class PdfToImageUtil {
/**
* dpi越大转换后越清晰,相对转换速度越慢
*/
private static final Integer DPI = 100;
/**
* 转换后的图片类型
*/
private static final String IMG_TYPE = "png";
/**
* PDF转图片
*
* @param fileContent PDF文件的二进制流
* @return 图片文件的二进制流
*/
public static PdfInfo pdfToImage(byte[] fileContent) throws IOException {
List<byte[]> result = new ArrayList<>();
int pageCount = 0;
try (PDDocument document = PDDocument.load(fileContent)) {
PDFRenderer renderer = new PDFRenderer(document);
pageCount = document.getNumberOfPages();
for (int i = 0; i < pageCount; ++i) {
BufferedImage bufferedImage = renderer.renderImageWithDPI(i, DPI);
ByteArrayOutputStream out = new ByteArrayOutputStream();
ImageIO.write(bufferedImage, IMG_TYPE, out);
result.add(out.toByteArray());
}
}
return new PdfInfo(result, pageCount);
}
public static int getPageNum(byte[] bytes){
try {
PdfReader reader = new PdfReader(bytes);
return reader.getNumberOfPages();
} catch (IOException e) {
log.error("解析pdf异常:{}", e);
}
return 0;
}
}

浙公网安备 33010602011771号