依赖的maven包
<dependency>
<groupId>org.icepdf</groupId>
<artifactId>icepdf-core</artifactId>
<version>6.3.1</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.9</version>
</dependency>
工具类方法
public String pdf2ImgWithPdfBox(String url, String folderName,String fileName) {
log.info("PdfBox开始pdf转图片并上传oss, folderName={}", folderName);
Document document = new Document();
try {
//File file = new File(path);
InputStream inputStream = new URL(url).openStream();
PDDocument pdf = PDDocument.load(inputStream);
PDFRenderer pdfRenderer = new PDFRenderer(pdf);
PDPageTree pageTree = pdf.getPages();
int pageCounter = 0;
for (PDPage page : pageTree) {
float width = page.getCropBox().getWidth();
float scale = 2.0f;
if (width > 720) {
scale = 720 / width;
}
BufferedImage bim = pdfRenderer.renderImage(pageCounter, scale, ImageType.RGB);
RenderedImage rendImage = bim;
ByteArrayOutputStream out = new ByteArrayOutputStream();
try {
ImageIO.write(rendImage, "png", out);
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(out.toByteArray());
int size = out.size();
String imgUrl = uploadImage(folderName,fileName, byteArrayInputStream,Long.valueOf(size));
return imgUrl;
} catch (IOException e) {
log.error("单页PDF转PNG异常:", e);
}
pageCounter++;
bim.flush();
IOUtils.closeQuietly(out);
bim = null;
out = null;
}
} catch (Exception e) {
log.error("pdf转img异常:" , e);
} finally {
document.dispose();
}
document = null;
return null;
}