2016-11-10 33 views
0

美好的一天伙伴程序员。我是新来的Java,我需要从PDF的特定部分创建一个图像。PDF to java使用java

目前,我正在使用pdfbox。

这里是我的代码从PDF创建的图像(它的工作,但它创造了整个PDF页面的图像):

PDDocument document = PDDocument.load(new File(PDFFILE)); 

      PDFRenderer pdfRenderer = new PDFRenderer(document); 
      for (int page = 0; page < document.getNumberOfPages(); ++page) 
      { 

       BufferedImage bim = pdfRenderer.renderImageWithDPI(page, 300, ImageType.RGB); 

       ImageIOUtil.writeImage(bim, path + "-" + (page+1) + ".png", 300); 
      } 
      document.close(); 

问题:

我需要创建一个基于图像在特定位置上的pdf(如矩形)。

有没有办法使用pdfbox来做到这一点,还是有另一个库可以做到这一点?我尝试搜索,但我找不到解决方案。
谢谢。

+1

您可以减少所产生的图像或者你可以在渲染之前修改PDF页面的裁剪框和/或媒体盒感谢MKL。 – mkl

+0

@mkl我可以使用pdfbox吗?你有一个示例代码先生? –

+0

现在工作。感谢您的想法。\ –

回答

1

这里是解决方案:为理念

private void PdfToImage(String PDFFILE){ 
      try{ 

       PDDocument document = PDDocument.load(new File(PDFFILE)); 
       PDPage pd; 

       PDFRenderer pdfRenderer = new PDFRenderer(document); 
       for (int page = 0; page < document.getNumberOfPages(); ++page) 
       { 


        pd = document.getPage(page); 
        pd.setCropBox(new PDRectangle(100, 100,100,100)); 
        BufferedImage bim = pdfRenderer.renderImageWithDPI(page, 300, ImageType.RGB); 
        ImageIOUtil.writeImage(bim, outputpath + (page+1) + ".png", 300); 

       } 
       document.close(); 
      }catch (Exception ex){ 
       JOptionPane.showMessageDialog(null, ex.getStackTrace()); 
      } 
     }