工具类:
// 将PDF文件转换为图片 public static void convertPDFToImages(File pdfFile) throws IOException { // 加载PDF文档 PDDocument document = PDDocument.load(pdfFile); PDFRenderer pdfRenderer = new PDFRenderer(document); // 获取PDF中的页数 int numberOfPages = document.getNumberOfPages(); // 循环转换每一页 for (int pageIndex = 0; pageIndex < numberOfPages; pageIndex++) { // 获取每一页的BufferedImage BufferedImage image = pdfRenderer.renderImageWithDPI(pageIndex, 300); // 300 DPI高清 // 设置输出文件路径 String outputFileName = pdfFile.getName().replace(".pdf", "_page_" + (pageIndex + 1) + ".jpg"); File outputfile = new File(pdfFile.getParent(), outputFileName); // 将图片保存为JPEG文件 ImageIO.write(image, "JPEG", outputfile); System.out.println("Converted: " + outputfile.getAbsolutePath()); } // 关闭文档 document.close(); }
调用示例:
@Override public void ConvertPDFFilesToImages() { // 指定目录路径 File directory = new File(String.valueOf(uploadDir)); // 检查指定路径是否是一个目录 if (directory.exists() && directory.isDirectory()) { // 获取目录下的所有文件 File[] files = directory.listFiles(); if (files != null) { // 遍历文件 for (File file : files) { // 只处理PDF文件 if (file.isFile() && file.getName().endsWith(".pdf")) { try { //在这里调用方法 convertPDFToImages(file); } catch (IOException e) { System.err.println("Failed to convert PDF: " + file.getName()); e.printStackTrace(); } } } } else { System.out.println("The directory is empty or an error occurred."); } } else { System.out.println("The specified path is not a valid directory."); } }