网上搜了一圈,根据java转pdf为png图片的方法写的,只转换pdf文件里是一张图片的文件。
import java.awt.image.BufferedImage import java.io.{File, IOException} import javax.imageio.ImageIO import org.icepdf.core.pobjects.Document import org.icepdf.core.util.GraphicsRenderingHints object pdfToPng { /* * pdf 转 图片 */ def pdf2Png(pdfPath: String): Unit = { val document = new Document document.setFile(pdfPath) //缩放比例 val scale = 2.5f //旋转角度 val rotation = 0f //转换路径格式,便于识别 val filePath = pdfPath.replaceAll("\\\\", "/") //得到文件名 val pdfFile = filePath.split("/").last //得到原文件存储路径,如果不想存储在原文件,也可以自己传路径 val path = filePath.split("/").diff(Array(pdfFile)).mkString("/") + "/" //获得文件名,如果有后缀去掉pdf后缀 val filename = pdfFile.diff(".pdf") /* 如果要转文件为图片,则可以加个以pdf页数为基础的循环 此处只有一页,便不做循环 for(i <- 0 until document.getNumberOfPages) { */ //得到转换到的图片 val image = document.getPageImage(1, GraphicsRenderingHints.SCREEN, org.icepdf.core.pobjects.Page.BOUNDARY_CROPBOX, rotation, scale).asInstanceOf[BufferedImage] val rendImage = image try { val imgName = filename + ".png" System.out.println(imgName) //新建png val file = new File(path + imgName) //写入png,也可以转成其他格式的图片 ImageIO.write(rendImage, "png", file) } catch { case e: IOException => e.printStackTrace() } //将内存缓冲区中的图片真正写到目的地中 image.flush() // } document.dispose() } def main(args: Array[String]): Unit = { val filePath = "D:\\Test\\test.pdf" pdf2Png(filePath) } }以上程序要导入jar包:
百度云盘:链接:https://pan.baidu.com/s/1dTDbae 密码:t82g