将pdf的base64转成图片
直接上代码:
pdfToImage中已经拼接“data:image/png;base64, ”参数。直接拿到图片格式,在页面就能显示。
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;
String pdfBase64 = "pdf的base64码";
List<String> imgBase64 = pdfToImage(pdfBase64);
return imgBase64.get(0);
pdfToImage方法:
private List<String> pdfToImage(String base64) {
ByteArrayOutputStream os = new ByteArrayOutputStream();
List<String> imgs = new ArrayList<>();
try (InputStream is = new ByteArrayInputStream(Base64Utility.decode(base64)); PDDocument doc = PDDocument.load(is);) {
PDFRenderer pdfRenderer = new PDFRenderer(doc);
for (int i = 0; i < doc.getNumberOfPages(); i++) {
BufferedImage image = pdfRenderer.renderImage(i, 1.25f);
os = new ByteArrayOutputStream();
ImageIO.write(image, "png", os);
imgs.add("data:image/png;base64," + Base64.encodeBase64String(os.toByteArray()));
}
} catch (AppException app) {
throw new AppException(app.getMessage());
} catch (Exception e) {
logger.error("pdf文件转换失败:", e);
throw new AppException("pdf文件转换失败");
}
return imgs;
}