検索
連載

既存のPDF文書にコンテンツを追記するにはJavaTips 〜JSP/サーブレット編

Share
Tweet
LINE
Hatena

 「PD文書を生成する(PDFLib)」では、PDFLibライブラリを利用してサーブレットクラスからPDF文書を生成する方法を紹介しました。しかし、例えば複雑な帳票イメージを1から動的に生成したり、帳票に変更が生じた場合の変更はサーバに大きな負荷をかけることになります。そこで、定型的な部分をあらかじめ「テンプレート」として用意しておき、動的なPDFの生成を部分的にとどめる方法が解決方法として考えられます。

(1)テンプレートPDFを用意する

 使用する「テンプレート」を「template.pdf」という名前で、アプリケーション・ルートの配下に配置します。以下は、今回利用するtemplate.pdfの中身です。

テンプレートとなるPDF文書
テンプレートとなるPDF文書

(2)サーブレットクラスを作成する

 テンプレートを引用しつつ、新規にPDF文書を作成するPdfTemplate.javaを定義してみましょう。

PdfTemplate.java

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***


 「PD文書を生成する(PDFLib)」で紹介したPdfGenerateクラスから変更されているのは、赤字の部分です。テンプレートを利用するには、open_pdiメソッドで呼び出したテンプレート・ファイルを基にページ・イメージを生成した後(open_pdi_pageメソッド)、fit_pdi_pageでページに対して適用するだけです。テンプレートを適用するに際しては、あらかじめbegin_page_extメソッドでダミーのページを作成しておく必要がある点に注意してください。

(3)デプロイメント・ディスクリプタにサーブレットクラスを登録する

 このサーブレットクラスを実行する前に、あらかじめデプロイメント・ディスクリプタ(web.xml)に対してサーブレットの登録を行う必要があります。<url-pattern>要素に「/result.pdf」のように指定しておくことで、サーブレットクラスをあたかも静的なPDFファイルであるかのように見せることができます(基礎から学ぶサーブレット/JSP 第11回「JSPとサーブレットの違いを明らかにする」)も合わせて参照してください)。

web.xml

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***


 このコードの実行結果は、以下のようになります。テンプレート・ファイルであるtemplate.pdfに文字列が追記されたPDF文書が生成されているのが確認できます。

実行結果
実行結果

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る