我们使用 Apache Maven 来管理我们的项目依赖项。确保以下依赖项驻留在类路径中。
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.8</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox-tools</artifactId>
<version>2.0.8</version>
</dependency>
Apache PDFBox 在 Java 中将 PDF 转换为图像
我们首先加载 PDF 文档。接下来我们创建一个
PDFRenderer
类。然后我们遍历每个页面并创建一个
BufferedImage
. 最后我们将图像写入磁盘。干净简单。
package com.memorynotfound.pdf.pdfbox;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.ImageType;
import org.apache.pdfbox.rendering.PDFRenderer;
import org.apache.pdfbox.tools.imageio.ImageIOUtil;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class PdfToImage {
private static final String OUTPUT_DIR = "/tmp/";
public static void main(String[] args) throws Exception{
try (final PDDocument document = PDDocument.load(new File("/tmp/bookmark.pdf"))){
PDFRenderer pdfRenderer = new PDFRenderer(document);
for (int page = 0; page < document.getNumberOfPages(); ++page)
BufferedImage bim = pdfRenderer.renderImageWithDPI(page, 300, ImageType.RGB);
String fileName = OUTPUT_DIR + "image-" + page + ".png";
ImageIOUtil.writeImage(bim, fileName, 300);
document.close();
} catch (IOException e){
System.err.println("Exception while trying to create pdf document - " + e);
本教程演示如何使用 Apache PDFBox 将 PDF 文档转换为 Java 中的图像。Maven 依赖项我们使用 Apache Maven 来管理我们的项目依赖项。确保以下依赖项驻留在类路径中。<dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId> <version>2.0.8<
直接上代码,关键位置有注释,有错误,不懂的地方请留言。 @RequestMapping("/pdf")
public void pdf2Image(HttpServletResponse response) throws IOException {
PDDocument doc = PDDocument.load(new File("C:\\Users\\F\\Deskto...
Java中进行图像I/O(即读图片和写图片,不涉及到复杂图像处理)有三个方法:
Java Image I/O API,支持常见图片,从Java 2 version 1.4.0开始就内置了。 主页:http://java.sun.com/javase/6/docs/technotes/guides/imageio/index.html
JAI 中的 Image I/O Tools,支持更多图
15:42:52,158 WARN [WARN] Handler execution resulted in exception
javax.imageio.IIOException: Can't create output stream!
at javax.imageio.ImageIO.write(ImageIO.java:1574)
at org.flhy.webapp.core.K...
通常在开发的时候,我们会遇到图片上传的功能,特别是有很多是提供url地址的方式。所以需要提供一个将url的图片等存储起来,然后提供一个我们自己的地址给用户使用。
第一步:提供pdfbox的jar包。准备相应的maven
<dependency>
<groupId>org.apache.pdfbox</groupId>...
使用 Apache PDFBox 库可以实现将图片转换为 PDF 的功能。以下是一个实例代码:try {
// 创建一个PDF文档
PDDocument document = new PDDocument();
// 创建一个图像
BufferedImage bufferedImage = ImageIO.read(new File("image.jpg"));
// 将图像转换为PDF
PDImageXObject pdImageXObject = LosslessFactory.createFromImage(document, bufferedImage);
// 添加图像到PDF文档中
PDPage page = new PDPage(new PDRectangle(pdImageXObject.getWidth(), pdImageXObject.getHeight()));
document.addPage(page);
// 将图像放入PDF文档中
PDPageContentStream contentStream = new PDPageContentStream(document, page);
contentStream.drawImage(pdImageXObject, 0, 0);
contentStream.close();
// 保存PDF文档
document.save("image.pdf");
document.close();
} catch (IOException e) {
e.printStackTrace();
韩顺平老师的Java课代表: