import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import javax.imageio.IIOImage;
import javax.imageio.ImageIO;
import javax.imageio.ImageWriter;
import javax.imageio.stream.ImageOutputStream;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.springframework.stereotype.Component;
import com.galaxy.result.SmartjResult;
@Component
public class PDF2Image {
public SmartjResult convertImage(String filePath,String outPath)throws Exception{
SmartjResult result = new SmartjResult();
FileOutputStream out = null;
ImageOutputStream outImage = null;
PDDocument doc = null;
try {
File file = new File(outPath);
if(!file.exists()){
file.mkdirs();
}
doc = PDDocument.load(filePath);
List<?> pages = doc.getDocumentCatalog().getAllPages();
for(int i=0;i<pages.size();i++){
PDPage page = (PDPage)pages.get(i);
BufferedImage image = page.convertToImage();
Iterator<ImageWriter> iter = ImageIO.getImageWritersBySuffix("jpg");
ImageWriter writer = (ImageWriter)iter.next();
File outFile = new File(outPath+i+".jpg");
out = new FileOutputStream(outFile);
outImage = ImageIO.createImageOutputStream(out);
writer.setOutput(outImage);
writer.write(new IIOImage(image,null,null));
out.close();
outImage.close();
}
result.setSuccess(true);
result.setOther(pages.size());
doc.close();
return result;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
doc.close();
}
result.setSuccess(false);
return result;
}
}
所需jar包:pdfbox-1.8.11.jar 下载地址:http://pdfbox.apache.org/