- PR -

文字列をレイアウトの幅に合うように分割(改行)して出力する方法

1
投稿者投稿内容
マシェ
会議室デビュー日: 2005/10/12
投稿数: 13
投稿日時: 2005-12-12 14:39
Java・Struts・JasperReportsなどを使い、
Web画面から作成・編集した帳票をPDFへ出力できるシステムを作成しているのですが
1つの文字列をレイアウトの幅に合うように分割(改行)して出力する方法で悩んでいます。

※PDFのレイアウト作成はiReportを使用することになっています。
現在は以下のJavaプログラムのように文字列を決まった文字数で分割し行ごとのパラメータにセットしているのですが、この方法では半角、全角の幅の違いで改行される位置がバラバラになってしまうので、iReportのテキストフィールドで表示領域を超えたデータは次のパラメータに出力するという設定ができないかと考えています。
ご存知の方がいらっしゃいましたらよろしくお願い致します。

【iReportで作成したレイアウト】
出力する文字列:$P{outPutString1}
$P{outPutString2}
$P{outPutString3}
$P{outPutString4}

【Javaのプログラム】
//パラメータのセット
String str = "PDFに出力したい文字列(この場合200文字以上)";
Map paramMap = new HashMap();
paramMap.put("outPutString1", "str.substring(0, 49);
paramMap.put("outPutString2", "str.substring(50, 99);
paramMap.put("outPutString3", "str.substring(100, 149);
paramMap.put("outPutString4", "str.substring(150, 199);

//バインド
JasperPrint jasperPrint = JasperFillManager.fillReport(".jasperファイルまでのパス", paramMap, (JRDataSource)null);

//PDFへ出力
JasperExportManager.exportReportToPdfFile(jasperPrint, "PDFを作成する場所");


[ メッセージ編集済み 編集者: マシェ 編集日時 2006-01-12 17:19 ]
1

スキルアップ/キャリアアップ(JOB@IT)