將pdf文檔轉換成高清圖片
關於pdf轉換成高清圖片,網上有不少資料,但測試過後發現多數不可用,甚至出現pdf圖片格式錯亂等問題。
以下pdf轉高清圖片核心代碼是經過本人驗證並應用與實踐項目的。請惠存!
File file = new File(pdfPath);
PDDocument pdDocument;
try {
pdDocument = PDDocument.load(file);
List<PDPage> pdPages = pdDocument.getDocumentCatalog().getAllPages();
/* dpi越大轉換後越清晰,相對轉換速度越慢 */
List<File> files = new ArrayList<>();
for (int i = 0; i < pdDocument.getNumberOfPages(); i++) {
PDPage page = pdPages.get(i);
String imagePath = pdfPath.replace(".pdf", "") + "_" + i + ".png";
File dstFile = new File(imagePath);
//300 是縮放比例,可調整,數值越高轉換越慢
BufferedImage image = page.convertToImage(BufferedImage.TYPE_INT_RGB, 300);
ImageIO.write(image, "png", dstFile);
files.add(dstFile);
}
//TODO 到此我們已經將pdf文檔按頁拆分成高清的pdf文件,如果業務有需要可以將所有的圖片整合成一張圖片
System.out.println("PDF文檔轉PNG圖片成功!");
} catch (IOException e) {
e.printStackTrace();
}