LoginSignup
1
0

JavaアプリでPDF出力する方法

Last updated at Posted at 2022-02-22

JavaアプリでPDF出力する方法を実務で実装したのでメモしておきます。

#1、 Jaspersoft Studioをインストールし、帳票のテンプレートファイル(jrxmlファイル)を作成する

まずはEclipseで、

ヘルプ → Eclipseマーケットプレイス・ウィザードを開く

でマーケットプレイスを開き、JasperSoft Studioをインストールします。インストールが終わったら、

src/main/webapp/template/ 配下でjrxmlファイルを作成します。このjrxmlファイルでレイアウトを作成し、パラーメータを割り当てます。また、ここではフォントを「IPAex明朝」にしておきます。

#2、 jarファイル一式をダウンロード

下記のjarファイル一式をダウンロードします。

bcprov-jdk15on-1.68.jar
castor-core-1.4.1.jar
castor-xml-1.4.1.jar
commons-beanutils-1.9.4.jar
commons-collections-3.2.2.jar
commons-collections4-4.2.jar
commons-digester-2.1.jar
commons-lang3-3.4.jar
commons-logging-1.1.1.jar
ecj-3.21.0.jar
gson-2.8.6.jar
itext-2.1.7.js8.jar
jackson-annotations-2.12.4.jar
jackson-core-2.12.3.jar
jackson-databind-2.12.5.jar
jasperreports-6.18.1.jar
javax.inject-1.jar
jcommon-1.0.23.jar
jfreechart-1.0.19.jar

これらをダウンロードしたら、

src/main/webapp/WEB-INF/libの直下にすべてコピーします。必ずしもバージョンは記載のものでなくても大丈夫です。新しいものがあればそっちをダウンロードしてください。

#3、帳票ファイル定義とデフォルトデータを追加する

次に、

src/main/java に exportというパッケージを作成します。(名前は任意)

そのパッケージ下でclassファイルを作成します。

このファイルでパラメータを取得します。

#4、帳票データ設定処理を追加する

src/main/java/export に サーブレットファイルを作ります。

ここに帳票データ設定処理を追加していきます。(必要があればデータベースに接続したり)

#5、PDF出力用のJSPを作成する

src/main/webapp/WEB-INFの配下に出力用のJSPを作成します。

4で作成したサーブレットにアクセスするaタグを実装します。このリンクを押せばPDFが出力されます。

#6、フォント等のインストール

まず、src/main/resources配下にfontsという名前のパッケージを作成します。この中にフォントをインストールします。

今回は「IPAex明朝」でjrxmlファイルを作成したので、「ipaexg.ttf」 と 「ipaexm.ttf」 をダウンロードして、fontsパッケージ下にコピーします。

また、「pdf_font.xml」 という名前のxmlファイルもfontsパッケージ下に作成し、下記のように入力します。

pdf_font.xml
<?xml version="1.0" encoding="UTF-8"?>
<fontFamilies>
  <fontFamily name="IPAexゴシック">
    <normal>fonts/ipaexg.ttf</normal>
    <pdfEncoding>Identity-H</pdfEncoding>
    <pdfEmbedded>true</pdfEmbedded>
  </fontFamily>
  <fontFamily name="IPAex明朝">
    <normal>fonts/ipaexm.ttf</normal>
    <pdfEncoding>Identity-H</pdfEncoding>
    <pdfEmbedded>true</pdfEmbedded>
  </fontFamily>
</fontFamilies>

最後にsrc/main/resources配下に 「jasperreports_extension.properties」 の名前でファイルを作成して、下記のように入力します。

jasperreports_extension.properties
net.sf.jasperreports.extension.registry.factory.fonts=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory
net.sf.jasperreports.extension.simple.font.families.font=fonts/pdf_font.xml

これでPDF出力できるようになります。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0