使用PDFRenderer将PDF转化为图片

这几天遇到一个问题,就是要将PDF文档中的内容全部转化为图片。

我在网上找了很多资料,发先有好多这的实现方式,我也对这些资料做了一些整理。
我这里就介绍一个自认为还不错的实现方式,使用java实现的。
1)下载一个 PDFRenderer.jar的包
       URL:  https://pdf-renderer.dev.java.net/
2)在这个官网上还有几个sample ,大家可以看一下 : https://pdf-renderer.dev.java.net/examples.html
3)下面一段代码就是将一个pdf生成png格式的图片 
public void Pdf_Png(int pageNumber ) { int pagen= pageNumber; File file = new File("D:/test.pdf"); PDFFile pdffile=null; // set up the PDF reading try{ RandomAccessFile raf = new RandomAccessFile(file, "r"); FileChannel channel = raf.getChannel(); ByteBuffer buf = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size()); pdffile = new PDFFile(buf); } catch(Exception e){} if(pagen<pdffile.getNumPages()) return; //print出该pdf文档的页数 System.out.println(pdffile.getNumPages()); //设置将第pagen也生成png图片 PDFPage page = pdffile.getPage(pagen); // create and configure a graphics object int width = (int)page.getBBox().getWidth(); int height =(int)page.getBBox().getHeight(); BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); Graphics2D g2 = img.createGraphics(); g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); // do the actual drawing PDFRenderer renderer = new PDFRenderer(page, g2, new Rectangle(0, 0, width, height), null, Color.RED); try{ page.waitForFinish(); }catch(Exception e){ e.printStackTrace(); } renderer.run(); g2.dispose(); try{ ImageIO.write(img, "png", new File("D:/Image.png")); } catch(Exception ex){} 
除了生成PNG图片外,
PDF Renderer还有一下功能
       在用户自己的应用中查看PDF。 

  提供PDF文件的打印预览。 

  将PDF合并到3D场景中。 

  在PDF之上绘图,并可以在网络查看器中进行标注。
原文地址: http://baiyun11095.blog.163.com/blog/static/33798962201032415853412/

 

你可能感兴趣的:(java,exception,object,File,null,文档)