360SDN.COM

首页/Java/列表

使用PDFRenderer将PDF转化为png图片

来源:  2017-08-25 15:11:31    评论:0点击:

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

我在网上找了很多资料,发先有好多这的实现方式,我也对这些资料做了一些整理。
我这里就介绍一个自认为还不错的实现方式,使用java实现的。
1)下载一个 PDFRenderer.jar的包
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之上绘图,并可以在网络查看器中进行标注。

 

为您推荐

友情链接 |九搜汽车网 |手机ok生活信息网|ok生活信息网|ok微生活
 Powered by www.360SDN.COM   京ICP备11022651号-4 © 2012-2016 版权