- PR -

iReportでPDF出力するがLinuxで文字が欠落してしまいます。

1
投稿者投稿内容
桜月
常連さん
会議室デビュー日: 2004/10/01
投稿数: 27
お住まい・勤務地: 神奈川県
投稿日時: 2006-01-13 10:46
いつもお世話になっています。
桜月です。

iReportで「Windows」用と「Linux」用にPDFを作成し、
Javaより取得したデータを出力したところ
同じデータなのに「Linux」用のPDFでは文字が一部欠落してしまいました。

出力テキストは2行になっており、
例えば「あいうえおかきくけこさしすせそ」と
入力した文字を出力させたところ、

【Windows】
 あいうえおかきくけこさしすせそ
【Linux】
 あいうえおかきくけこさし

という風Linuxでは欠落して出力されてしまいます。
また「あいうえおかきくけこさしすせそたちつてと」と出力させると、

【Windows】
 あいうえおかきくけこさしすせそ
 たちつてと
【Linux】では
 あいうえおかきくけこさしすせそ
 たちつてと

という感じに出力されるのです。

どうしてLinuxでは1行の時に途中で文字が欠落してしまうのか
知りたいのです。
(ちなみに横幅を変更しても文字が欠落する場所が変わるだけで
解決には至りませんでした。)

どなたかご指導の方よろしくお願い致します。
ハツキタツミ
大ベテラン
会議室デビュー日: 2005/05/24
投稿数: 108
投稿日時: 2006-01-13 13:13
環境と、現象が発生する最低限のコードぐらいは示しましょう。
桜月
常連さん
会議室デビュー日: 2004/10/01
投稿数: 27
お住まい・勤務地: 神奈川県
投稿日時: 2006-01-13 14:07
引用:

ハツキタツミさんの書き込み (2006-01-13 13:13) より:
環境と、現象が発生する最低限のコードぐらいは示しましょう。



すみませんでした。
環境は

iReport 0.2.2
eclipse 3.0.1
java j2sdk-1_4_2_06

を使用しています。

/***********************************************
* 帳票に出力必要な変数名をここですべて定義する
***********************************************/
public Object getFieldValue(JRField field) throws JRException {

   Object value = null;
   String fieldName = field.getName();

   if ("Hira".equals(fieldName)) {
    value = hira;
   }

   return value;
}

以上です。
桜月
常連さん
会議室デビュー日: 2004/10/01
投稿数: 27
お住まい・勤務地: 神奈川県
投稿日時: 2006-01-13 14:23
自己レスです。

原因はよくわかりませんでしたが、
一応の解決方法を見つけました。

@2行出力できるテキストを辞めて
 テキストを2つ用意
 Hira1とHira2

A文字数によって出力内容を変更
* Hiraには出力文字
public Object getFieldValue(JRField field) throws JRException {
  // 改行位置
  int newline = 15;

  if("Hira1".equals(fieldName)){
    if(Hira.length() >= newline ){
      value = Hira.substring(0, newline);
    }else{
      value = Hira;
    }
  }else if("Hira2".equals(fieldName)){
    if(Hira.length() >= newline ){
      value = Hira.substring(newline);
    }else{
      // 改行位置以下なら空白を設定
      value = "";
    }
  }
}

あまり解決とは言えないかもしれませんが、
一応これで上手くいきました。
1

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