【问题标题】:Reading pdf with Apache PDF Box使用 Apache PDF Box 阅读 pdf
【发布时间】:2015-12-14 20:54:39
【问题描述】:

我有这几行代码,我试图用 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();

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

【问题讨论】:

    标签: java swing pdf pdfbox


    【解决方案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有所了解。如果您不这样做,请学习它或雇用某人。 (这就是我们所做的,最好的是:谷歌支付了它,作为谷歌代码之夏的一部分)

    蒂尔曼

    【讨论】:

    • 不知道你看到没
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多