JavaでiTextを使ってPDFに表示、印刷する方法について。

Java言語で帳票を出力したい時には、iTextというオープンソースのライブラリが便利です。

iTextを使えば、Java言語やC#、.NET、Androidなどから、
PDFファイルを扱うことができます。

他にもPDFファイルを利用できるライブラリはあります。

iTextはその中の一つだと考えてください。

Java言語からMySQLのようなデータベースにあるデータを利用して、
動的な帳票をPDF出力できると、用途が一気に広がりますよね。

PDFにしてしまえば、表示はもちろん、印刷や保存も可能です。

PDFファイルは、プログラマーなどのIT専門家じゃなくても、

今や普通の職場でも広く使われているので、

扱いになれている、馴染みやすいのもメリットです。

開発者視線で見ると、さすがにAccessのレポートで帳票を作るような手軽さはありませんが、

よく使われる部分はプログラムのパターンがほぼ同じなので、

慣れれば大丈夫だと思います。

iTextライブラリを利用するには、jarファイルを入手する必要があります。

ダウンロードはこちらから出来ます。
http://itextpdf.com/ja

あとは日本語を扱えるようにするためのjarファイル(iTextAsian.jar)が必要です。

インターネットで検索するとすぐ見つかるので、ダウンロードできます。

圧縮されているファイルを解凍して、Javaのプロジェクトから利用できるように、

jarファイルをライブラリに追加し、ビルドパスを設定します。

*詳細な手順は、別の機会に説明します。

これで準備は完了。

Javaのプログラムからは、iTextのクラスを使ってPDFを作成するという流れです。

iTextには様々なクラス、多くのメソッド、多彩なフォントなどがあります。

一度に複雑な帳票をPDFにしようとすると、
プログラムがとても難解で複雑に感じるはずです。

挫折してしまう人が出てくるかも知れません。

だからJavaプログラミング初心者の場合は、
最初は「こんにちは」のような一言だけPDFに出力するごく簡単なプログラムを目標に始めることをおすすめします。

その過程で、必須のクラス、メソッド、フォントなどがわかるはずです。

一度PDFに出力することに成功したら、複雑な帳票に挑戦すると良いと思います。

一覧表を作成してみたりとか、データベースから値を挿入してみたりとか。

アイデア次第で、いろいろできますよ。

Java8でデータベースAccessにUCanAccessで接続するする方法。

Java8でデータベースソフトのAccessに接続するには、JDBCドライバのUCanAccessを使います。

当講座では、これまでJDBC-ODBCブリッジを使用していました。

JDKとJREをインストールする時、
講座の手順と同じバージョンにすれば、そのまま使えます。

しかしJava8だと、以下のようなエラーメッセージが出るはずです。

java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver


これはJava8には該当するクラスが無くなったからです。
(つまりサポートされなくなった)

Java8では、JDBC ODBCブリッジが標準では使えなくなった(削除された)ため、
ODBCを使用した接続が出来ないのが原因。

Java7でも非推奨らしいです。

そこで、UCanAccessを使うわけです。

今回、動作確認を行ったのは、次の環境です。

OS Windows8.1
Java8 64bit版
JDK、JREはそれぞれDドライブの直下にインストール
環境変数のPathもDドライブのJdkに設定
SampleDB030.mdbはDドライブの直下に配置
ODBCデータソースへの登録はもう不要 *


以下のWebサイトから、UCanAccessを入手(ダウンロード)します。
https://osdn.jp/projects/sfnet_ucanaccess/

「最新ダウンロードファイル」のところから、
日付の新しいzipファイルを選択してください。

例 UCanAccess-3.0.3.1-bin.zip

ダウンロードしたzipファイルを展開(解凍)すると、
以下の5つのjarファイルがあります。

ucanaccess-2.0.9.5.jar
libフォルダの中に
commons-lang-2.6.jar
commons-logging-1.1.1.jar
hsqldb.jar
jackcess-2.1.0.jar


これらを先にインストールしておいたjreのextフォルダにコピー&ペーストします。
例 D:\jre\lib\ext

次に当講座の「Step2・データベースに接続」で「sample100」フォルダ内に作成した
「DbConnect.java」の一部を書き換えます。

保存先は、CドライブでもDドライブでもかまいません。

WindowsXPより新しいパソコンでは、
Cドライブの権限が強くなっているので、Dドライブのほうが良いでしょう。

*「\」はWindowsではエンマークのことです。

保存先 D:\java\sample100
ファイル名 DbConnect.java

・旧

import java.sql.*;

class DbConnect {
  public static void main(String args[]) {
    try {
      //JDBCドライバのロード
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      //各設定
      String url = "jdbc:odbc:SampleDB030";
      String user = "";
      String pass = "";

      //データベースに接続
      Connection con = DriverManager.getConnection(url,user,pass);

      System.out.println("接続成功");

      //データベースを切断
      con.close();

    } catch (Exception e) {
      System.out.println("例外発生:" + e );
    }
  }
}


・新

import java.sql.*;

class DbConnect {
  public static void main(String args[]) {
    try {
      //各設定
      String url = "jdbc:ucanaccess://D:/SampleDB030.mdb";
      String user = "";
      String pass = "";

      //データベースに接続
      Connection con = DriverManager.getConnection(url,user,pass);

      System.out.println("接続成功");

      //データベースを切断
      con.close();

    } catch (Exception e) {
      System.out.println("例外発生:" + e );
    }
  }
}


今回、変わったのは、
・ODBCデータソースへの登録が不要になったこと
・JDBCドライバのロードが不要になったこと
・urlの部分は、ucanaccessでファイル名まで指定するようになったこと

あとは「Step2・データベースに接続」の手順で、
コンパイルとJavaプログラムの実行を行い、動作確認してください。

また、以降のステップでは、「DbConnect.java」の中身を、
今回説明したように書き替えてください。

それ以外は、講座の手順通りで動作するはずです。

ps:
JREはJava8をインストールしたもの以外にも、
C:\Program Files (x86)\Java
などにも複数のバージョンがあるはずです。

ここには、Webブラウザで利用される最新版のJREがインストールされるのですが、
ここのextフォルダにUCanAccessを配置すると、
更新される度に再配置が必要なので面倒です。

だからJava8と同時にインストールした公開用のJREのほうに配置しておいた方が、
手間がかからないので便利です。

Javaを学習する時のバージョンについて。

Javaバージョンは、いくつか種類があります。

JavaのJRE(Java Runtime Environment)は、
セキュリティーが更新された最新版が、常に提供されています。

また、Javaでプログラムを開発する時に必要なJDK(Java Development Kit )も、
最新バージョンが提供されています。

最新版では、プログラムの修正により、

セキュリティーが向上するため、リスクが減ったり、

新しい機能が使える(機能アップデート)ことがあります。

Javaのパフォーマンスが向上するのもメリットです。

だから普通にJavaを利用するのでしたら、最新版をおすすめします。

しかし、Javaプログラミングを当無料講座で学習する時は、
Java6というバージョンを使用してください。

Java6の入手はこちら

なぜなら、掲載しているプログラムや図は、Java6を使って作ってあるからです。

それに特定のバージョンでしか使えない機能があるのも理由の一つです。

ページ数も多いし、プログラムや図を常に最新版に合わせるのは、
大変な作業量となってしまいます。

そこで読者には、Javaの学習と実用を分けて考えて欲しいのです。

Javaを学習する時は、Java6を使うと、プログラムも図もそのまま使えます。

これだと手順がまったく同じになります。

そしてJavaを使ったアプリケーション開発に慣れてきたら、

最新版のJDKやJREを使ってください。

その頃にはJavaのバージョンに合わせて、
プログラムを書き換えることが可能なはずですから。

スポンサードリンク

スポンサードリンク






Java初心者入門講座TOPへ