使用pdfbox将文字pdf转换为图片pdf
添加pdfbox
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>3.0.5</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>fontbox</artifactId>
<version>3.0.5</version>
</dependency>
使用pdfbox将文字pdf转换为图片pdf
String inputPath = "input.pdf"; // 输入 PDF
String outputPath = "output_image_pdf.pdf"; // 输出图片 PDF
float dpi = 300; // 渲染分辨率
try (PDDocument document = Loader.loadPDF(new File(inputPath))) {
PDFRenderer pdfRenderer = new PDFRenderer(document);
PDDocument imagePdf = new PDDocument();
for (int pageIndex = 0; pageIndex < document.getNumberOfPages(); pageIndex++) {
// 1. 渲染为 BufferedImage
BufferedImage bim = pdfRenderer.renderImageWithDPI(pageIndex, dpi);
// 2. 新建 PDF 页面,尺寸与原图一致
PDPage page = new PDPage(new PDRectangle(bim.getWidth(), bim.getHeight()));
imagePdf.addPage(page);
// 3. 把图片画到新 PDF 页面
try (PDPageContentStream contentStream = new PDPageContentStream(imagePdf, page)) {
contentStream.drawImage(
LosslessFactory.createFromImage(imagePdf, bim),
0, 0, bim.getWidth(), bim.getHeight()
);
}
}
imagePdf.save(outputPath);
imagePdf.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
System.out.println("转换完成,输出文件:" + outputPath);
Updated: 2025-08-20 22:38
Created: 2025-08-20 20:00