使用Apache PDF Box阅读pdf

时间:2015-12-14 20:54:40

标签: java swing pdf pdfbox

我有这些代码行,我试图用Apache pdfBox读取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);
    }
}

我希望这个pdf显示在jPanel等swing组件上,但这只会显示带有pdf文件预期内容的面板。但是,我能够使用

将pdf显示为图像
convertToImage = testPage.convertToImage();

请问,我该如何解决这个问题或者我做错了什么。

1 个答案:

答案 0 :(得分:1)

Apache PDF-Box有一个mailing list我可以问同样的问题,这就是我得到的回复

  

这在2.0中删除了,因为它制造了麻烦。显然,它至少对你来说也不适用于1.8,所以为什么要这么麻烦?

     

有两种方法可以显示,或者获取BufferedImage(renderImage / renderImageWithDPI)并以某种方式显示(参见PDFDebugger如何操作),或者渲染到图形设备对象的renderPageToGraphics。

     

如果您确实想要获取已删除的PDFReader应用程序(包括PDFPagePanel)的源代码,请使用svn获取修订版1702125或更早版本,应该拥有它。但如果它在1.8中不适合你,它现在对你不起作用。

     

关键是PDF页面的摇摆显示不是API的一部分,它是某些工具的一部分(现在:在PDFDebugger中,之前:在PDFReader中)

     

你需要对awt / swing有一些了解。如果你不这样做,那就去学习,或雇用某人。 (这就是我们所做的,最好的是:谷歌支付它,作为谷歌夏季代码的一部分)

     

蒂尔曼