1

可変長の文字列を含むtextField要素を含むJasperReportsテンプレートがあります。文字列が長すぎて幅に収まらない場合は、文字列にハイフンまたはスペース文字が含まれている場合を除いて、分割されます。この場合、文字列はその文字から分割されます。以下は、私のポイントを理解しやすくするために、入力、観察された結果、および必要な結果と要約の例です。

input      observed   wanted   summary
_____________________________________
overflow  -> overfl -> overfl : OK
over flow -> over   -> over f : NOT OK
over-flow -> over-  -> over-f : NOT OK

reportElementにisStretchWithOverflow="true"属性を設定すると、テキストが2行に分割されますが、これは望ましくない動作です。

これを修正する方法はありますか?

ありがとう。

編集:入力データは外部ソースからのものであるため、直接変更することはできません。いくつかのテストを実行しましたが、スペースを壊さないスペースを使用するとスペースが有効になることに気付きました。一方、改行しないハイフンはまったく印刷されません。つまり、テキスト「over-flow」は「overflow」になります。求められているものではありません。

入力ソースが自分で制御できないにもかかわらず、スペースをノーブレークスペースに変更し、ハイフンをノーブレークハイフンに変更するスクリプトレットを作成することで、この問題を修正できます。

ちなみに、問題のヒントが得られる場合に備えて、PDFに印刷します。

4

2 に答える 2

0

フォントの問題です。改行しないハイフンは (\u2011) フォントがサポートしている場合は正常に機能します。デフォルトのフォント (DejaVu Sans など) 以外の読み込み方法については、フォントのサンプルを参照してください。

スクリプトレットよりも入力ソースの変更に適したオプションがある場合は、お知らせください。

(このトピックを閉じるために、自分の答えを正しいものとしてマークします。)

編集:この回答を正しいとマークするには、2 日間待つ必要があります。

于 2012-09-07T13:05:46.807 に答える