2013-03-13 5 views
4

Я пытаюсь создать документ RTF с таблицами с пустыми ячейками.шрифт ячейки таблицы в RTF с lowagie Документ

Я использую пакет com.lowagie.text.rtf.* в java.

font пустых ячеек все Times New Roman размера 12.

Как я могу установить шрифт из пустых ячеек в другую Font?

Я использовал RtfCell cellSpacer = new RtfCell(new Phrase("", new RtfFont("Arial", 9, RtfFont.NORMAL)));, но поскольку строка "" пуста, шрифт не вступает в силу. Когда "" заполнен чем-то, кроме space, шрифт вступает в силу.

спасибо.

ответ

3

Решение этой проблемы заключается в том, что пространство должно быть предоставлено как неперекрывающееся пространство для конструктора фраз!

String nbs = "\u00A0";

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

+0

Спасибо, ТАК МНОГО !!! – Iryna

1

Я думаю, что проблема заключается в этом validation on line 198 on Phrase.java, который вызывается из конструктора Phrase(String string, Font font). В принципе, он проверяет, что строка не пуста, иначе она не создаст кусок, содержащий указанный текст и шрифт.

кажется, что вы должны либо:

  1. Проходят пространство конструктору:

    новой фразы (»», новый RtfFont ("Arial", 9, RtfFont.NORMAL))

  2. Создайте новый пользовательский класс (class AllowsEmptyPhrase extends Phrase), скопируйте конструкторы и удалите нежелательное поведение.

+0

Спасибо за ваш ответ. Как вы можете видеть в моем вопросе, я попытался передать пространство конструктору, но не работал. Я еще не пытался расширить класс фраз. – mnish

Смежные вопросы