RTF中的表格单元格字体(使用lowagie Document)

4
我正在尝试使用空单元格创建包含表格的RTF文档。在Java中,我使用com.lowagie.text.rtf.*包。所有空单元格的字体均为Times New Roman 12号字体大小。我该如何将空单元格的字体设置为不同的字体?我已经尝试使用RtfCell cellSpacer = new RtfCell(new Phrase("", new RtfFont("Arial", 9, RtfFont.NORMAL)));,但是因为空字符串"",所以字体未生效。只要填充了除空格以外的任何内容,字体就能生效。谢谢!
2个回答

3
解决这个问题的方法是,在Phrase构造函数中必须将空格给出为非断开空格! String nbs = "\u00A0"; RtfCell cellSpacer = new RtfCell(new Phrase(nbs, new RtfFont("Arial", 9, RtfFont.NORMAL)));

1
我认为问题出在Phrase.java第198行的验证中,该验证从构造函数Phrase(String string, Font font)中调用。基本上,它检查字符串不为空,否则它将不会创建包含您指定的文本和字体的块。
看起来,您应该执行以下操作之一:
  1. 向构造函数传递一个空格:

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

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

谢谢您的回答。正如您在我的问题中所看到的,我已经尝试将一个空格传递给构造函数,但并没有起作用。我还没有尝试扩展Phrase类。 - mnish

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接