3

我已经在 netbeans 中创建了一个 JForm,它可以使用 PDFBox 读取 pdf 文件。但问题是我使用了非常慢的方法 PDPage.convertToImage() 。任何人都可以帮助我在 JPanel 中使用 PDFBox 以更快的速度显示 pdf 吗?

我编写的代码在 JButton 的 ActionListener 中。

File f = null;
ArrayList<JLabel> jl = new ArrayList<JLabel>();
BufferedImage bi = null;
JFileChooser fc = new JFileChooser();
int x=fc.showOpenDialog(null);
if(x==JFileChooser.APPROVE_OPTION)
{
    f=fc.getSelectedFile();
}
        PDDocument doc=null;
    try {
        doc = PDDocument.load(f);
    } catch (IOException ex) {
        JOptionPane.showMessageDialog(null, "not done\n"+ex);


    }
    List pages = doc.getDocumentCatalog().getAllPages();
    Iterator itr = pages.iterator();
    int q=0;
    while(itr.hasNext())
    {
        PDPage page = (PDPage)itr.next();
        try
        {
            bi = page.convertToImage();
            q++;
            jl.add(new JLabel(new ImageIcon(bi)));
        }catch(Exception e)
        {
            JOptionPane.showMessageDialog(null, e);
        }
    }
    itr = jl.iterator();
    while(itr.hasNext())
    {
        viewPanel.setVisible(false);
        viewPanel.add((JLabel)itr.next());
        viewPanel.setVisible(true);
    }
    JOptionPane.showMessageDialog(null, "done");
4

1 回答 1

-2

NetBeans 有几个插件来显示 PDF

http://plugins.netbeans.org/plugin/5809/java-pdf-reader http://plugins.netbeans.org/plugin/11676/netbeans-pdfviewer http://plugins.netbeans.org/plugin/17/ pdf-viewer-javafx-converter-and-bookmarking-application

您尝试过其中任何一个吗?

于 2013-01-20T09:42:29.687 回答