有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

swing在Java JFrame/JPanel中显示PDF,或者至少以任何可能的方式显示页面的图像

为了解释我要做的事情,我正在构建一个应用程序,它将使用Swing和其他一些库来根据用户提供的信息处理一系列PDF文件。这对我在这里要做的事情真的不重要,但我觉得总览一下会很好

我想做的是在Jframe/Jpanel或其他swing组件中显示一个PDF,这样用户就可以自己阅读PDF了。他们将要阅读的PDF文件包含日期等信息,我需要他们输入到我的程序中

到目前为止,我可以为我的程序做任何事情,除了有一个体面的方式将PDF与信息联系起来。我的另一种方法是根本不显示PDF,只显示文件名和输入信息的字段,这样他们就可以从Adobe Reader之类的东西中读取PDF,然后从那里输入。然而,我不想这样做,因为使用这个程序的人年龄稍大,容易出错。让他们跟踪PDF名称,而不是仅仅看到PDF的图像,这对他们来说太难了

TL;DR-需要在Swing组件中显示PDF或PDF页面的图像


共 (1) 个答案

  1. # 1 楼答案

    我知道的最简单的方法是使用DJ Native Swing将浏览器嵌入Swing应用程序。然后给浏览器一个PDF文件,让它完成剩下的工作

    以下是如何在JFrame上安装浏览器:

        NativeInterface.open();
        Runnable runnable = new Runnable() {
            public void run() {
                JFrame frame = new JFrame();
                JPanel panel = new JPanel();
                frame.setContentPane(panel);
                JWebBrowser browser = new JWebBrowser();
                browser.setBarsVisible(false);
                browser.setStatusBarVisible(false);
                browser.setPreferredSize(new Dimension(800,600));
                panel.add(browser);
                browser.navigate("http://www.cran.r-project.org/doc/manuals/R-intro.pdf");
                frame.pack();
                frame.setVisible(true);
            }
        };
        SwingUtilities.invokeAndWait(runnable);
    

    不过,这种解决方案的可移植性不强