4

RTF空のセルを持つテーブルでドキュメントを作成しようとしています。

com.lowagie.text.rtf.*はJavaでパッケージを使用します。

空のセルのサイズfontはすべて12 です。Times New Roman

空のセルのフォントを別のフォントに設定するにはどうすればよいFontですか?

使用RtfCell cellSpacer = new RtfCell(new Phrase("", new RtfFont("Arial", 9, RtfFont.NORMAL)));しましたが、文字列""が空であるため、フォントは有効になりません。""が a 以外の何かで満たされている場合、spaceフォントは有効になります。

ありがとうございました。

4

2 に答える 2

3

この問題の解決策は、スペースをフレーズコンストラクターにノーブレークスペースとして指定する必要があることです。

String nbs = "\u00A0";

RtfCell cellSpacer = new RtfCell(new Phrase(nbs, new RtfFont("Arial", 9, RtfFont.NORMAL)));

于 2013-03-21T15:41:19.667 に答える
1

問題は、コンストラクターから呼び出されるPhrase.java の 198 行目のこの検証だと思いますPhrase(String string, Font font)。基本的に、文字列が空でないことを確認します。それ以外の場合は、指定したテキストとフォントを含むチャンクを作成しません。

次のいずれかを行う必要があるようです。

  1. コンストラクターにスペースを渡します。

    new Phrase(" ", new RtfFont("Arial", 9, RtfFont.NORMAL))

  2. 新しいカスタム クラス ( class AllowsEmptyPhrase extends Phrase) を作成し、コンストラクターをコピーして、不要な動作を削除します。

于 2013-03-17T16:03:27.993 に答える