我使用带有不规则列的Itext .Itext版本是5.5.9。 我无法设置行间距。 我使用以下代码:
ColumnText ct= new ColumnText();
ct.setLeading(6f);
但使用setLeading无效。 请建议。
答案 0 :(得分:2)
您的问题不完整,因为您没有展示如何向ct
添加内容,但我认为您是在复合模式中添加内容(忽略了列)而不是文本模式(它采用列的属性)。
因此,您必须更改添加内容的方式,或者必须更改设置前导的方式。
这是文字模式:
ColumnText ct= new ColumnText();
ct.setLeading(6f);
ct.addText(new Chunk("Hello"));
ct.addText(new Chunk("World"));
这是复合模式:
ColumnText ct= new ColumnText();
Paragraph p = new Paragraph("Hello World ... Long sentence, etc.");
p.setLeading(6f);
ct.addElement(p);
在复合模式示例中,定义ct
的前导是没有意义的,因为它会被Paragraph
的前导推翻。 Paragraph
的默认前导是字体大小的1.5倍。因此,如果将列的前导设置为6,但使用复合模式添加具有默认字体大小的段落,则前导将为18(1.5倍12)。
<强>更新强>
您无法在文字模式下使用Paragraph
s。执行此操作后,Paragraph
将被视为Phrase
,并且它们会占据ColumnText
的前导。文本模式中的所有文本在同一go()
中具有相同的前导。你能做的一件事就是不同时间致电go()
:
ColumnText ct= new ColumnText();
ct.setLeading(6f);
ct.addText(new Chunk("Hello blah blah ... blah"));
ct.go();
ct.setLeading(12f);
ct.addText(new Chunk("Hello blah blah ... blah"));
ct.go();