2015-12-14 117 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 –