C# 调整Chunk.NewLine itextc的高度#

C# 调整Chunk.NewLine itextc的高度#,c#,itext,C#,Itext,我必须显示一列,其中有两个字符串,两个字符串之间有一条空行,下面是我正在使用的代码段 Pharse heading = new Pharse("Header"); Pharse footer= new Pharse("Footer"); Paragraph label = new Paragraph(); label.Add(heading); label.Add(Chunk.NEWLINE); label.Add(footer); 但是,我注意到空行的高度太大了。我怎样才能减少它呢?有不同

我必须显示一列,其中有两个字符串,两个字符串之间有一条空行,下面是我正在使用的代码段

Pharse heading = new Pharse("Header");
Pharse footer= new Pharse("Footer");

Paragraph label = new Paragraph();
label.Add(heading);
label.Add(Chunk.NEWLINE);
label.Add(footer);

但是,我注意到空行的高度太大了。我怎样才能减少它呢?

有不同的方法来实现你想要的。让我从我认为最简单的方法开始。如果您有一个
段落
,并且希望它后面有一些额外的空间,您可以使用
SpacingAfter
功能:

Paragraph label1 = new Paragraph("Header");
label1.SpacingAfter = 15;
Paragraph label2 = new Paragraph("Footer");
document.Add(label1);
document.Add(label2);
如您所见,我将
标签
拆分为两个对象。事实上,每个
段落
对象都有一个前导。这个前导定义了行与行之间的间距,并且它对于
段落中的每一行都是相同的。它可以表示为(组合)基于字体大小的绝对距离和相对距离。参见Chris Haas对问题的回答

如果
标题
页脚
由一行组成,则可以通过减少前导的值来减少
块.NEWLINE所占用的空间。例如:

Phrase heading = new Phrase("Header");
Phrase footer= new Phrase("Footer");
Paragraph label = new Paragraph();
label.Leading = 12;
label.Add(heading);
label.Add(Chunk.NEWLINE);
label.Add(footer);
这种方法的缺点是,两行文字之间的距离也会缩短。例如:如果
标题
包含更长的文本,则行将被拆分,并且这些行之间的距离也将减小

您还可以同时使用这两种解决方案。例如:将
段落
分为三部分:
标题
、新行块和
页脚
。用一个小的前导将新行块包装成一个单独的
段落

注意:PDF中的所有测量值均以用户单位表示。默认情况下,一英寸中有72个用户单位。换言之:12个用户单位的前导为1/6英寸