2009年7月7日火曜日

JasperReportsを利用するPDF出力

久々にJasper使ってみた。(^(エ)^)

1. ダウンロードURL

JasperReports : http://jasperforge.org/
iTextAsian.jar : http://itextpdf.sourceforge.net/


2. 使ったライブラリ

jasperreports-3.5.2.jar
iText-2.1.0.jar
iTextAsian.jar
commons-beanutils-1.8.0.jar
commons-collections-2.1.jar
commons-digester-1.7.jar

3. 日本語対応

fontタグのオプションを修正
<font pdfFontName="HeiseiKakuGo-W5" pdfEncoding="UniJIS-UCS2-H" isPdfEmbedded="true"/>

4. テストコード

import java.io.File;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.data.JRBeanArrayDataSource;

public class JasperTest {

/**
* @param args
*/
public static void main(String[] args) {
String strPathMain = "jasper/report1.jasper";

File reportFile = new File(strPathMain);
try {
int length = 10;
TestBean[] beans = new TestBean[length];

for (int i = 0; i <>
beans[i] = new TestBean("f_" + i, "日本語_" + i);
}

JasperPrint jasperPrint = JasperFillManager.fillReport(reportFile
.getPath(), null, new JRBeanArrayDataSource(beans));

JasperExportManager.exportReportToPdfFile(jasperPrint,
"jasper/report1.pdf");
} catch (JRException e) {
e.printStackTrace();
}
}
}


5. iReport(今回は3.5.2)でデザインするときに日本語はオプションで設定する必要がある。