注意版本,高版本的不行,高版本方法暂未探究
依赖
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>1.8.13</version>
</dependency>
//实现
package com.tbd.util;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDResources;
import org.apache.pdfbox.pdmodel.graphics.xobject.PDXObjectImage;
/**
* 提取PDF中的图片
*/
public class GetImage {
/**
* @param file PDF文件
* @param targetFolder 图片存放目录
* @return
*/
public static boolean getImages(File file, String filePath) {
boolean result = true;
try{
PDDocument document = PDDocument.load(file);
List<PDPage> pages = document.getDocumentCatalog().getAllPages();
Iterator<PDPage> iter = pages.iterator();
int count = 0;
while( iter.hasNext()){
PDPage page = (PDPage)iter.next();
PDResources resources = page.getResources();
Map<String, PDXObjectImage> images = resources.getImages();
if(images != null)
{
Iterator<String> imageIter = images.keySet().iterator();
while(imageIter.hasNext())
{
count++;
String key = (String)imageIter.next();
PDXObjectImage image = (PDXObjectImage)images.get( key );
String name = file.getName() + "_" + count; // 图片文件名
image.write2file(filePath+ name); // 保存图片
}
}
}
} catch(IOException ex){
ex.printStackTrace();
return false;
}
return result;
}
public static void main(String[] args) {
File file = new File("F:/test.pdf");
String filePath = "F:/target/";
getImages(file, filePath);
}
}