5

我正在使用 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);

有人能告诉我如何在两张桌子之间添加垂直空间吗?

谢谢!

4

2 回答 2

14

请改用 PdfPTable。它具有属性SpacingBeforeSpacingAfter

例如:

PdfPTable upperTable = new PdfPTable(1);
upperTable.AddCell(new Phrase("some text", font3));
upperTable.SpacingAfter = 10f;
于 2012-03-22T00:13:55.310 回答
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);

将导致在andfont3之间添加高度定义为 的 2 行"some text""some other text"

于 2009-05-19T03:10:47.147 回答