我正在尝试使用包含空单元格的表创建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
之外的其他内容时,字体才会生效。
谢谢。
答案 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)
调用的。基本上,它检查字符串是否为空,否则它不会创建包含您指定的文本和字体的块。
似乎你应该:
将空格传递给构造函数:
new Phrase(“”,new RtfFont(“Arial”,9,RtfFont.NORMAL))
创建新的自定义类(class AllowsEmptyPhrase extends Phrase
),复制构造函数并删除不需要的行为。