4

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

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

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

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

我用过RtfCell cellSpacer = new RtfCell(new Phrase("", new RtfFont("Arial", 9, RtfFont.NORMAL)));,但是因为字符串""是空的,所以字体没有生效。当""填充了除 a 之外的其他内容space时,字体确实生效。

谢谢你。

4

2 回答 2

3

解决这个问题的方法是必须将空格作为非中断空格提供给 Phrase 构造函数!

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 回答