2015-12-14 114 views
0

我有這些代碼行,我試圖用來閱讀PDF文件與Apache的PDFBox。用Apache閱讀PDF PDF盒

private void readPdf(){ 
    try { 
     File PDF_Path = new File("/home/olyjosh/Downloads/my project.pdf"); 
     PDDocument inputPDF = PDDocument.load(PDF_Path); 
     List<PDPage> allPages = inputPDF.getDocumentCatalog().getAllPages(); 
     PDPage testPage = (PDPage) allPages.get(5); 
     System.out.println("Number of pages "+allPages.size()); 

     PDFPagePanel pdfPanel = new PDFPagePanel(); 
     jPanel1.add(pdfPanel); 
     pdfPanel.setPage(testPage); 

//   this.revalidate(); 
     inputPDF.close(); 
    } catch (IOException ex) { 
     Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex); 
    } 
} 

我想要顯示像JPanel的Swing組件本PDF但這隻會與PDF文件的預期的內容顯示面板。但是,我能夠顯示PDF爲圖像使用

convertToImage = testPage.convertToImage(); 

請問,我該如何解決這個問題或我做錯了什麼。

回答

1

阿帕奇PDF盒具有mailing list在那裏我能問同樣的問題,這是我

這在2.0刪除,因爲它做麻煩的響應。顯然,它也不適用於1.8,至少對於你來說,爲什麼要麻煩?

有兩種顯示方式,獲取BufferedImage(renderImage/renderImageWithDPI)並以某種方式顯示(請參閱PDFDebugger中的操作方法)或呈現給圖形設備對象的renderPageToGraphics。

如果您確實想獲取已刪除的PDFReader應用程序(包括PDFPagePanel)的源代碼,請使用svn來獲取版本1702125或更低版本,應該有。但是,如果它在1.8版本中不適合你,現在不適合你。

的一點是PDF頁面的鞦韆上顯示不是API的一部分,它的一些工具的一部分(現:在PDFDebugger,以前:在PDFReader)

你需要有AWT的一些理解/搖擺。如果你不這樣做,學習它,或僱用某人。 (這就是我們所做的,最好的是:谷歌支付它,因爲谷歌的夏天代碼的一部分)

蒂爾曼

+0

不知道,如果你看到它,但我併發布一些代碼郵件列表與另一個類似的問題相關,也許這有助於:https://mail-archives.apache.org/mod_mbox/pdfbox-users/201512.mbox/%3C567F0B43.7040301%40t-online.de%3E –