带有lowagie Document的RTF中的表格单元格字体

时间:2013-03-13 15:57:35

标签: java fonts itext cell rtf

我正在尝试使用包含空单元格的表创建RTF文档。

我在java中使用com.lowagie.text.rtf.*包。

空单元格的font大小均为Times New Roman 12。

如何将空单元格的字体设置为不同的Font

我使用过RtfCell cellSpacer = new RtfCell(new Phrase("", new RtfFont("Arial", 9, RtfFont.NORMAL)));,但由于字符串""为空,因此字体不会生效。当""填充除space之外的其他内容时,字体才会生效。

谢谢。

2 个答案:

答案 0 :(得分:3)

此问题的解决方案是必须将空格作为Phrase构造函数的非中断空间给出!

String nbs = "\u00A0";

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

答案 1 :(得分:1)

我认为问题是validation on line 198 on Phrase.java,它是从构造函数Phrase(String string, Font font)调用的。基本上,它检查字符串是否为空,否则它不会创建包含您指定的文本和字体的块。

似乎你应该:

  1. 将空格传递给构造函数:

    new Phrase(“”,new RtfFont(“Arial”,9,RtfFont.NORMAL))

  2. 创建新的自定义类(class AllowsEmptyPhrase extends Phrase),复制构造函数并删除不需要的行为。