JooReports勉強記録

JooReports   
おそらく日本で初めてJooReports(JooTemplates)をオープンソースの帳票ツールで一押しとキッパリ公言してしまった人のこっそりやってる勉強の記録
 | 

2004-05-13JooConverter 1.0b3 released

[][][]JooConverter 1.0b3

かなり重要なAPIが変更されてました。DocumentConverter#convertの引数がURIからFileへ変更になってます。普通に考えると大して影響は無いと思う

という事で前のサンプルをちょこちょこと変更して実行!

動きました。って事で動かしたサンプルをそのまま掲載

public static void main(String[] args) {

File sxw;

File pdf;

DocumentConverter converter;

try {

sxw = new File("J:/TestWriter.sxw");

pdf = new File("J:/test2.html");

converter = DocumentConverterFactory.getConverter();

converter.convert(sxw, pdf, DocumentFormat.HTML_WRITER);

} catch (ConnectException e1) {

// TODO 自動生成された catch ブロック

e1.printStackTrace();

} catch (IOException e2) {

// TODO 自動生成された catch ブロック

e2.printStackTrace();

} finally {

try {

DocumentConverterFactory.getConnection().close();

} catch (ConnectException e) {

// TODO 自動生成された catch ブロック

e.printStackTrace();

}

}

[][]JooTemplatesその1

とりあえず動かしてみる為に必要最小限の情報を更新してみるテスト

まずは環境構築ってことでこれまで使っていたEclipseのprojectにjootemplates-0.8のjarとlibの中にあるjarを全部追加

そしていきなりサンプルを作る(笑)

public static void main(String[] args) {

Template template = null;

try {

template = new Template(new FileInputStream("J:/SimpleFields.stw"));

} catch (FileNotFoundException e) {

// TODO 自動生成された catch ブロック

e.printStackTrace();

return;

} catch (IOException e) {

// TODO 自動生成された catch ブロック

e.printStackTrace();

return;

} catch (TemplateException e) {

// TODO 自動生成された catch ブロック

e.printStackTrace();

return;

}

SimpleDataModel model = new SimpleDataModel();

model.put("name", "makotan");

model.put("nameLength", "99");

// ...

try {

template.createDocument(model, new FileOutputStream("J:/SimpleFields.sxw"));

} catch (FileNotFoundException e1) {

// TODO 自動生成された catch ブロック

e1.printStackTrace();

} catch (IOException e1) {

// TODO 自動生成された catch ブロック

e1.printStackTrace();

} catch (TemplateException e1) {

// TODO 自動生成された catch ブロック

e1.printStackTrace();

}

}

コードのほとんどは例外処理の自動生成の部分です。実際はこのやり方はまずいなぁと思いつつ、とりあえずサンプルって事で(^^;

ちゃんと動いてファイルは出来ました!

という事で、次はBeanDataModelを使ってみましょう

 |