目录
pom依赖包
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.1</version>
</dependency>
示例代码
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.imageio.ImageIO;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;
public class Test2
{
public void pdfToJpg() throws IOException {
// 需要转换的pdf地址
InputStream stream = new FileInputStream(new File("E:\\test.pdf"));
PDDocument doc = PDDocument.load(stream);
PDFRenderer renderer = new PDFRenderer(doc);
// pdf页数,一页一页转换
int pageCount = doc.getNumberOfPages();
for (int i = 0; i < pageCount; i++) {
BufferedImage image = renderer.renderImageWithDPI(i, 240); // Windows
// native
// DPI
ByteArrayOutputStream bs = new ByteArrayOutputStream();
ImageIO.write(image, "jpg", bs);
InputStream inputStream = new ByteArrayInputStream(bs.toByteArray());
// 导出的文件路径
FileOutputStream fos = new FileOutputStream("E:\\desdir\\des" + i + ".jpg");
// 保存jpg
byte[] b = new byte[1024];
while ((inputStream.read(b)) != -1) {
fos.write(b);// 写入数据
}
fos.close();
bs.close();
inputStream.close();
stream.close();
}
}
public static void main(String[] args) {
try {
new Test2().pdfToJpg();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
效果展示
原pdf
转换后图片