前言
以下是一个使用 Apache PDFBox 将 PDF 文件转换为图片的封装方法。这个方法将会把 PDF 的每一页转换为一张图片,并保存到指定的目录中。
1.添加依赖
首先,你需要在项目中添加 PDFBox 的依赖。如果你使用的是 Maven,可以在 pom.xml
中添加以下依赖:
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.29</version> <!-- 使用最新版本 -->
</dependency>
2.转换方法
java
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;
import org.apache.pdfbox.rendering.ImageType;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class PDFToImageConverter {
/**
* 将 PDF 文件转换为图片并保存到指定目录中。
*
* @param pdfFilePath PDF 文件的路径
* @param outputDirPath 输出图片保存的目录
* @param imageFormat 图片格式,如 "png", "jpg"
* @param dpi 每英寸的点数 (DPI),用于控制图像质量
* @throws IOException 如果文件读取或写入时发生错误
*/
public static void convertPDFToImages(String pdfFilePath, String outputDirPath, String imageFormat, int dpi) throws IOException {
File pdfFile = new File(pdfFilePath);
PDDocument document = PDDocument.load(pdfFile);
PDFRenderer pdfRenderer = new PDFRenderer(document);
File outputDir = new File(outputDirPath);
if (!outputDir.exists()) {
outputDir.mkdirs();
}
for (int page = 0; page < document.getNumberOfPages(); page++) {
BufferedImage bufferedImage = pdfRenderer.renderImageWithDPI(page, dpi, ImageType.RGB);
String outputFileName = outputDirPath + File.separator + "page_" + (page + 1) + "." + imageFormat;
ImageIO.write(bufferedImage, imageFormat, new File(outputFileName));
}
document.close();
}
public static void main(String[] args) {
try {
String pdfFilePath = "input.pdf"; // 输入 PDF 文件路径
String outputDirPath = "output_images"; // 输出图片保存目录
String imageFormat = "png"; // 图片格式
int dpi = 300; // DPI 设置,300 是常见的高质量图像设置
convertPDFToImages(pdfFilePath, outputDirPath, imageFormat, dpi);
System.out.println("PDF 转换为图片成功!");
} catch (IOException e) {
System.err.println("PDF 转换为图片时发生错误: " + e.getMessage());
}
}
}
3.方法说明
pdfFilePath
: 输入的 PDF 文件路径。outputDirPath
: 输出图片保存的目录路径。如果目录不存在,会自动创建。imageFormat
: 图片格式,例如"png"
或"jpg"
。dpi
: 图像的 DPI (Dots Per Inch),控制输出图片的分辨率。DPI 越高,图片越清晰。
4.使用说明
将 main
方法中的路径和参数修改为你自己的文件路径和所需的配置,然后运行程序。程序会将 PDF 的每一页转换为一张图片并保存到指定的输出目录中。