java -- 将PDF文件的首页提取为图片
2013-01-01 21:35
239 查看
由于最近在做一个图书分享的应用,需要将PDF格式书籍的首页提取出来作为一张图片来展示。于是在网上找了一些文章和开源的工具。其中个人感觉总结的比较好的:http://www.oschina.net/question/250267_41156
对于文章中介绍的几种开源工具,我只用过pdfbox和icepdf。我最开始用的是pdfbox,但是问题就在于pdfbox对于稍微大点的文件,比较容易发生内存溢出,网上的解释为其会将整个pdf都加载到内存中,对于我只取其中首页来说,有点不太合适。于是后来我选择了icepdf,基本上,这个工具挺不错的,转换速度也挺快,而最为重要的一点就是我还没遇到过内存溢出的情况。不过,如果需要对文件进行索引的话,还是pdfbox会比较好些,其集成了Lucene.
pdfbox官网:http://pdfbox.apache.org/
icepdf官网:http://www.icepdf.org/
我这里使用的是icepdf,导入icepdf相关jar,编写程序如下:
对于文章中介绍的几种开源工具,我只用过pdfbox和icepdf。我最开始用的是pdfbox,但是问题就在于pdfbox对于稍微大点的文件,比较容易发生内存溢出,网上的解释为其会将整个pdf都加载到内存中,对于我只取其中首页来说,有点不太合适。于是后来我选择了icepdf,基本上,这个工具挺不错的,转换速度也挺快,而最为重要的一点就是我还没遇到过内存溢出的情况。不过,如果需要对文件进行索引的话,还是pdfbox会比较好些,其集成了Lucene.
pdfbox官网:http://pdfbox.apache.org/
icepdf官网:http://www.icepdf.org/
我这里使用的是icepdf,导入icepdf相关jar,编写程序如下:
/** * 生成一本书的缩略图 * @param inputFile 需要生成缩略图的书籍的完整路径 * @param outputFile 生成缩略图的放置路径 */ public void generateBookIamge(String inputFile, String outputFile) { Document document = null; try { float rotation = 0f; //缩略图显示倍数,1表示不缩放,0.5表示缩小到50% float zoom = 0.8f; document = new Document(); document.setFile(inputFile); // maxPages = document.getPageTree().getNumberOfPages(); BufferedImage image = (BufferedImage)document.getPageImage(0, GraphicsRenderingHints.SCREEN, Page.BOUNDARY_CROPBOX, rotation, zoom); Iterator iter = ImageIO.getImageWritersBySuffix("jpg"); ImageWriter writer = (ImageWriter)iter.next(); FileOutputStream out = new FileOutputStream(new File(outputFile)); ImageOutputStream outImage = ImageIO.createImageOutputStream(out); writer.setOutput(outImage); writer.write(new IIOImage(image, null, null)); } catch(Exception e) { log.warn("to generate thumbnail of a book fail : " + inputFile); log.warn(e); } }
相关文章推荐
- JAVA 将图片转换成pdf文件
- 怎么把PDF文件中的图片全部提取出来
- java导出pdf文件(插入图片及信息)
- JAVA 将图片转换成pdf文件
- Java在已存在的pdf文件中生成文字和图片--基础
- java中如何将office文件转成pdf或者图片(亲测有效)
- Java使用icepdf将pdf文件按页转成图片
- java 生成pdf文件,添加图片
- Java使用icepdf将pdf文件按页转成图片
- java 使用itext导出PDF文件,图片文字左右布局
- Java 实现 FusionCharts 图表导出图片或PDF文件功能
- java下载网络文件, ppt,pdf,图片
- 滴水穿石--Java 生成PDF文件--iText使用之插入图片和中文乱码
- Java文件操作系列[1]——PDFBox实现分页提取PDF文本
- java代码生成PDF文件-表格和图片
- java代码生成PDF文件-表格和图片
- Java解析PDF文件(PDFBOX、itext解析PDF)导出PDF中的子图片,去除PDF中的水印
- java 生成pdf文件,添加图片
- javaBean+JSP+JS+XML实现从发布文章中自动提取图片在首页轮换效果
- Java 实现 pdf文件添加 图片水印 itextpdf 5.5.2