获取PDF中指定页面的图片缩略图(转)

时间:2024-03-09 07:28:09

转自(http://www.cnblogs.com/yunna/archive/2012/08/23/2652572.html

在先文档浏览器,像豆丁那样的,每篇文章都会有个缩略图,我就很好奇它那个缩略图是怎么弄出来的,难道是人工直接剪切出来(这肯定是荒谬的)。所以就借助百度和谷歌。搜索到了截取图片的插件,就是PDFBOX,目前版本是1.6

    下面是实现代码:

复制代码
 1     try {
 2             PDDocument doc = PDDocument.load("D:\\1.pdf");// 待获取图片的pdf文件
 3             int pageCount = doc.getNumberOfPages();
 4             System.out.println(pageCount);
 5 
 6             System.out.println("开始获取图片。。。。");
 7             List<PDPage> pages = doc.getDocumentCatalog().getAllPages();
 8             for (int i = 0; i < pages.size(); i++) {
 9                 PDPage page = pages.get(i);
10                 BufferedImage image = page.convertToImage();
11                 Iterator<ImageWriter> iter = ImageIO.getImageWritersBySuffix("JPG");
12                 ImageWriter writer = iter.next();
13                 File outFile = new File("D:\\pdfImage\\" + i + ".jpg");// 保存图片的路径
14                 FileOutputStream out = new FileOutputStream(outFile);
15                 ImageOutputStream outImage = ImageIO.createImageOutputStream(out);
16                 writer.setOutput(outImage);
17                 writer.write(new IIOImage(image, null, null));
18             }
19             doc.close();
20             System.out.println("获取图片结束!");
21         } catch (IOException e) {
22             e.printStackTrace();
23         }
复制代码