RSS

JasperReportsで日本語を使う

次は日本語だね、って適当にやってみるとエラーが出る。

さっき作ったJasperReportsのサンプルコードのデータソースに日本語を与えてみようと挑戦。次の段階として当たり前だね。jrxmlをiReportで編集。Textのプロパティを見ていけばPDF FontとPDF Encodingという欄がある。HeiseiMin-W3・UniJIS-UCS2-Hにそれぞれ設定。PDFのフォント設定として普通の設定ですね。

次にJavaのコードの変更。コード中に適当に日本語のデータを埋め込む。よし、これで実行…、あれ?
net.sf.jasperreports.engine.JRRuntimeException: Could not load the following font : 
pdfFontName : HeiseiMin-W3
pdfEncoding : UniJIS-UCS2-H
isPdfEmbedded : false
at net.sf.jasperreports.engine.export.JRPdfExporter.getFont(JRPdfExporter.java:1465)
at net.sf.jasperreports.engine.export.JRPdfExporter.getChunk(JRPdfExporter.java:1368)
at net.sf.jasperreports.engine.export.JRPdfExporter.getPhrase(JRPdfExporter.java:1351)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportText(JRPdfExporter.java:1708)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportElements(JRPdfExporter.java:590)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportPage(JRPdfExporter.java:554)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream(JRPdfExporter.java:519)
at net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter.java:306)
at net.sf.jasperreports.engine.JasperExportManager.exportReportToPdfFile(JasperExportManager.java:126)
at MapArrayDSReport.main(MapArrayDSReport.java:68)

というようなエラーが。調べてみるとiTextがデフォルトでCJKに対応してないからということが原因だった。iTextAsian.jarをダウンロードしてきてCLASSPATHに追加すると見事表示された。ここはまるので注意。