■はじめに
サーブレットからPDFで書き出す場合、iTextとiTextAsianを使えば開発できる。
その方法については、
フリーのライブラリを使いPDFを生成する
http://www.atmarkit.co.jp/fjava/javatips/134java025.html
に記載されている通りなのであるが、そこでは、eclipseで開発を行う場合、詳しく書かれていないことがあるので、一通り、以下に説明する。
■ダウンロード
以下のサイト
http://itextpdf.sourceforge.net/
に行き、少しスクロールすると、以下のような箇所に遭遇する。
itext-paulo-155.jar(つまりitextのjarファイル)とiTextAsian.jarの2つをダウンロードする。
■Eclipseでプロジェクト作成
Eclipseでプロジェクトを作成するため、はじめに、Tomcatプロジェクトを入れるフォルダを作成する。
Tomcatホームの下のwebappsの下に、新規フォルダを作成する
(中身は空でよい。これから作る)。
今回は、上記「新規フォルダ」を「itext」として話を進める。
それが出来たら、Eclipseを立ち上げ、今回のテスト用に、新規のTomcatプロジェクトを作成する。
それには、まず「ファイル」→「新規」→「プロジェクト」を選択し、
出てきたダイアログから、
「Tomcatプロジェクト」を選択して「次へ」をクリック。 次のダイアログで、
プロジェクト名を適当にいれ、
ロケーション名に、先ほど作ったフォルダ(例ではitext)を入れる
(「参照」ボタンをクリックし、選択すればロケーションに入る)。
そうしたら、「次へ」をクリック。その後出てくるダイアログで「完了」をクリック。 プロジェクトが作成される。
■プロジェクトにiTextとiTextAsianを入れ、パスを貼る
今作成したプロジェクト(iTextTest1)のWEB-INFの下のlibに、ダウンロードしてきた2つのファイルをコピーする。以下のように、eclipseのlibのところにダウンロードしてきたファイルをドラッグ&ドリップすると
以下のダイアログが出るので
「ファイルをコピー」になっていることを確認し、「OK」ボタンをクリックする。
これでファイルは入ったが、プロジェクトで、ここを見てくれないので、次に、パスを貼る。プロジェクトを右クリックして、「プロパティ」を選択する。
「プロパティ」のダイアログが表示されたら、「Javaのビルドパス」を選択し、「外部Jar追加」をクリック。
今、libに入れた2つのファイルを選択し(webapps/itext/WEB-INF/libの下にある)、保存して、パスを通す。
「OK」をクリックして、ダイアログを終わらせる。これでパスは、通っている。
■サーブレットクラスの作成
今回は、話を簡単にするため、前掲した
フリーのライブラリを使いPDFを生成するに記載されているプログラムと同じものを作成する(パッケージは面倒なので、デフォルトパッケージに入れてしまう。他は同じ)。
そこでは、PDFServletを作成しているので、ここでも、それを作成する。
現在作業しているプロジェクトのWEB-INF/srcを選択し、右クリック、
「新規」→「クラス」を選択する。以下のダイアログが表示されるので、
「名前」を入れて(PDFServlet)「完了」ボタンをクリックすると、クラスが出来る。
そうしたら、
先ほどのサイトの、「PDFServlet.java」の2行目からコピーして(1行目はパッケージの宣言だが、デフォルトパッケージで行うことにしたので、いらない)、今作成したクラスに上書きする。
そうすると、エラーが出る。importが足りていないので、
import java.io.ByteArrayOutputStream;
import java.io.OutputStream;
をインポートする。
次に、コピーしたソースは、説明用に(1)、(2)・・・の括弧が振ってある。これを削除する。
これで、エラーは消えると思う。これを保存する。
■web.xmlを作成する
現在作業しているプロジェクト(iTextText1)のWEB-INFを選択して、右クリック、
「新規」→「その他」を選択する。以下のダイアログが出るはずなので、
「XML」の下の「XMLファイル」を選択して「次へ」をクリック
「ファイル名」にweb.xmlと入れて、完了する。すると、eclipse上にweb.xmlが出来ているはずである。ここの中身を、以下のように修正(追加)して、保存する。
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<display-name>Test Servlet</display-name>
<description>Test Servlet</description>
<servlet>
<servlet-name>PDFServlet</servlet-name>
<servlet-class>PDFServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>PDFServlet</servlet-name>
<url-pattern>/PDFServlet</url-pattern>
</servlet-mapping>
</web-app>
|
(上記< > は、本当は半角)
■立ち上げ・表示
この後、Tomcatを立ち上げて、ブラウザから、
http://localhost:8080/itext/PDFServlet
を表示させると、PDFが見られるはずである。なお、見られないで、代わりに文字が出てきてしまった場合は、他のブラウザを立ち上げて、上記URLにアクセスすれば、見られるはずである。