watermint.org

Takayuki Okazaki's blog

Share on Facebook
Share on GREE
このエントリーをはてなブックマークに追加
はてなブックマーク - 今日のAPI: Acrobat Viewer JavaBean〜リッチクライアントでのPDF表示〜

Acrobat Viewer JavaBeanはAdobe社の提供しているAcrobat ReaderのJava版です。使い方も簡単で、Swing/AWTベースのアプリケーションに簡単に組み込むことができます。使い方は次の通りです。

  • Adobe Acrobat Viewer – DownloadからJavaBean Interfaceと書かれているところからbean.zipをダウンロードして展開します。
  • bean.zipに含まれているacrobat.jarとMRJToolkitStub.zipをクラスパスに追加します。
  • あとは、com.adobe.acrobat.Viewerをアプレットとして起動するかフォームに貼付けて、Viewer#setDocumentURLでファイルを指定すればAcrobat Viewerがフォーム中に表示されます。

このAPI、手軽に使えてしかもAdobe純正ということでとても期待しているんですが、いかんせんいろいろな問題があり、今回どちらかというと「ボツネタ」として紹介しようと思いました。使いにくく思う点は次の通りです。

  • com.adobe.acrobat.Viewerはjava.applet.Appletを継承している。このためNetBeansなどでパレットに追加して、貼付けようとしてもそのまま貼付けることができません(その他のコンポーネントとして張り付いてしまいます)。パレットから貼付けるのであれば例えば次のようなコードを書いて、このAcrobatPanelをパレットに追加すればうまく行きます。
    import java.awt.*;
    import javax.swing.*;
    import com.adobe.acrobat.*;
    public class AcrobatPanel extends JPanel {
    private Viewer viewer;
    public JPanel() throws Exception {
    viewer = new Viewer();
    setLayout(new BorderLayout());
    add(BorderLayout.CENTER, viewer);
    viewer.activate();
    }
    public void setDocumentURL(String url) throws Exception {
    viewer.setDocumentURL(url);
    }
    }
  • 次にがっかりしたのは例外がおおざっぱすぎるところです。主要なAPIがスローするのはjava.lang.Exceptionなんです・・・。これではまともな例外処理ができません。せめて、ファイルが見つからないのか、書式がおかしいのかぐらいはユーザに通知するために教えてほしいものです。
  • このアプリケーションを起動すると利用許諾に承諾するという旨のウインドウがでるのですが、これが手元の環境では毎回出てしまいます。最初の一回ということなら問題ないのですが、これが毎回でて回避方法が無いということであればちょっと使えない印象を持ってしまいます。
  • 最後に、致命的だったのがフォントの読み込みに失敗して文字が表示されないということです。これは、環境に依存するのか何なのかはまだきり分けができていませんが、Windows XP + JDK 5.0_05/JDK 1.4.2_09、Solaris 9 + JDK 5.0_01/JDK 1.4.1ではうまく動作しませんでした。

このようにちょっと見た限り便利そうなAPIなんですが、まだまだこれを使いこなすにはいろいろなハードルを乗り越えなければ行けなさそうです。今後、リッチクライアント環境におけるJava/SWINGの需要が増えていけばおそらくAdobeさんも本腰でこのAPIを強化しようと思っていただけるのではと期待しています ;-)

No Comments :(

Comments are closed.