2

私がやろうとしていることを説明するために、ユーザーが提供する情報に基づいて一連の PDF ファイルを処理するために、Swing やその他のライブラリを使用するアプリケーションを構築しています。それは、私がここでやろうとしていることにとって実際には重要ではありませんが、概要があればいいと思いました。

私がやりたいことは、Jframe/Jpanel または他のスイング コンポーネント内に PDF を表示して、ユーザーが PDF を自分で読めるようにすることです。彼らが読む PDF には、プログラムに入力するために必要な日付やその他の情報が含まれています。

これまでのところ、PDF を情報に適切に関連付けること以外に、自分のプログラムのすべてを行うことができます。私の別のアプローチは、PDF をまったく表示せず、単にファイル名を表示し、情報を入力するためのフィールドを用意することでした。そうすれば、Adobe Reader などから PDF を読み取って、そこから挿入することができます。ただし、このプログラムを使用する人は少し年上でエラーが発生しやすいため、そうしたくありません。PDF の画像を表示するだけでなく、PDF の名前を追跡しなければならないのは、彼らにとって負担が大きすぎるでしょう。

TL;DR - Swing コンポーネントで PDF または PDF ページの画像を表示する必要があります。

4

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);

ただし、このソリューションはあまり移植性がありません。

于 2013-08-04T17:02:41.927 に答える