我使用iTextSharp
在.net中使用以下代码PdfPTable Header2 = new PdfPTable(2);
Header2.DefaultCell.Padding = 4;
Header2.WidthPercentage = 90;
Phrase pp4 = new Phrase();
pp4.Add(new Chunk(" Text of the first line\n", FontFactory.GetFont("Arial", 17, iTextSharp.text.Font.BOLD, iTextSharp.text.Color.BLACK)));
pp4.Add(new Chunk(" Text of the second line", FontFactory.GetFont("Arial", 15, iTextSharp.text.Font.ITALIC, iTextSharp.text.Color.BLACK)));
PdfPCell hcell3 = new PdfPCell(new Phrase(pp4));
hcell3.HorizontalAlignment = Element.ALIGN_LEFT;
hcell3.VerticalAlignment = Element.ALIGN_TOP;
hcell3.BorderColor = iTextSharp.text.Color.BLACK;
hcell3.BackgroundColor = new iTextSharp.text.Color(255, 255, 255);
Header2.AddCell(hcell3);
输出显示文本在各行中彼此非常接近。我需要在两条线之间放置一些垂直空间。 我怎样才能在上面的代码中实现这一点?
答案 0 :(得分:1)
这些线之间的空间称为前导,指的是在打印的早期放在不同类型线之间的小条铅条。
您有两种选择。
如果您在文字模式下使用PdfPCell
(如果你不知道:你这样做),你可以改变这样的领先:
PdfPCell hcell3 = new PdfPCell(new Phrase(pp4));
hcell3.Leading = 20;
如果您在复合模式下使用PdfPCell
,则可以更改前导:
pp4.Leading = 20;
PdfPCell hcell3 = new PdfPCell();
hcell3.AddElement(pp4);
在前一种情况下,您在单元格中使用单个Phrase
,并且该单元格的所有内容都为前导采用单个值。在后一种情况下,忽略单元格的前导。而是使用您要添加到单元格的对象的前导(使用AddElement()
方法)。在后一种情况下,可以在同一个单元格中使用多个前导。
请注意,您使用的是旧版iText。我们不再称之为iTextSharp,我们将其称为iText for .NET。最新版本是7.1。如果您刚刚开始,请升级,因为不是客户的用户不再支持旧版本的iText。请参阅iText for .NET download page。