1.使用pdfbox:
代码如下:
public static void main(String[] args) {
//第一种方式:
String pdfPath = "d:\\深入理解.pdf";
// config option 1:convert all document to image
String[] args_1 = new String[3];
args_1[0] = "-outputPrefix";
args_1[1] = "my_image_1";
args_1[2] = pdfPath;
// 第二种方式
String[] args_2 = new String[7];
args_2[0] = "-startPage";
args_2[1] = "1";
args_2[2] = "-endPage";
args_2[3] = "13";
args_2[4] = "-outputPrefix";
args_2[5] = "d:\\aa\\my_image";
args_2[6] = pdfPath;
try {
// will output "my_image_1.jpg"
// PDFToImage.main(args_1);
// will output "my_image_2.jpg"
PDFToImage.main(args_2);
} catch (Exception e) {
// logger.error(e.getMessage(), e);
e.printStackTrace();
}
}2.使用pdf renderer:
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
File pdfFile = new File("d:\\深入理解.pdf");
RandomAccessFile raf = new RandomAccessFile(pdfFile, "r");
FileChannel channel = raf.getChannel();
ByteBuffer buf = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size());
PDFFile pdf = new PDFFile(buf);
for (int i=0; i<pdf.getNumPages(); i++)
createImage(pdf.getPage(i), "d:\\bb\\PICTURE_"+i+".jpg");//输出路径,d盘下的bb文件中
}
public static void createImage(PDFPage page, String destination) throws IOException{
Rectangle rect = new Rectangle(0, 0, (int) page.getBBox().getWidth(),
(int) page.getBBox().getHeight());
BufferedImage bufferedImage = new BufferedImage(rect.width, rect.height,
BufferedImage.TYPE_INT_RGB);
Image image = page.getImage(rect.width, rect.height, // width & height
rect, // clip rect
null, // null for the ImageObserver
true, // fill background with white
true // block until drawing is done
);
Graphics2D bufImageGraphics = bufferedImage.createGraphics();
bufImageGraphics.drawImage(image, 0, 0, null);
ImageIO.write(bufferedImage, "JPG", new File( destination ));
}jar包在网方下载
本文出自 “浪羽清风” 博客,请务必保留此出处http://1145004.blog.51cto.com/1135004/1359538
原文:http://1145004.blog.51cto.com/1135004/1359538