2016-11-10 66 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()); 
      } 
     }