iTextSharp垂直间距

时间:2009-05-18 01:07:58

标签: c# itextsharp

我正在使用iTextSharp生成一些PDF文件。我有两个有内容的表,我想在两个表之间放一些空格,相当于1行文本(使用与空格周围的表格相同的字体)。

下面是我用来添加两个表的代码。我无法弄清楚的是如何在两个表之间放置一个垂直空间。

Table upperTable = new Table(1);
upperTable.Border = Rectangle.NO_BORDER;
upperTable.DefaultCell.Border = Rectangle.NO_BORDER;
upperTable.DefaultCell.HorizontalAlignment = Element.ALIGN_CENTER;
upperTable.AddCell(new Phrase("some text", font3));
d.Add(upperTable);
Table lowerTable= new Table(1);
lowerTable.Border = Rectangle.NO_BORDER;
lowerTable.DefaultCell.Border = Rectangle.NO_BORDER;
lowerTable.DefaultCell.HorizontalAlignment = Element.ALIGN_CENTER;
lowerTable.AddCell(new Phrase("some other text", font3));
d.Add(lowerTable);

有人可以告诉我如何在两个表之间添加垂直空间吗?

谢谢!

2 个答案:

答案 0 :(得分:12)

请改用PdfPTable。它具有属性SpacingBeforeSpacingAfter

例如:

PdfPTable upperTable = new PdfPTable(1);
upperTable.AddCell(new Phrase("some text", font3));
upperTable.SpacingAfter = 10f;

答案 1 :(得分:2)

我找到了一种有效的解决方案......将新行添加为前一个字符串的一部分,或将以下字符串添加到我想要创建的空间中。例如:

Table upperTable = new Table(1);
upperTable.Border = Rectangle.NO_BORDER;
upperTable.DefaultCell.Border = Rectangle.NO_BORDER;
upperTable.DefaultCell.HorizontalAlignment = Element.ALIGN_CENTER;
upperTable.AddCell(new Phrase("some text" + '\n', font3));
d.Add(upperTable);
Table lowerTable= new Table(1);
lowerTable.Border = Rectangle.NO_BORDER;
lowerTable.DefaultCell.Border = Rectangle.NO_BORDER;
lowerTable.DefaultCell.HorizontalAlignment = Element.ALIGN_CENTER;
lowerTable.AddCell(new Phrase('\n' + "some other text", font3));
d.Add(lowerTable);

会导致2个行的高度由font3定义,并添加到"some text""some other text"

之间