【问题标题】:itextsharp how to add line height to the chunk contentitextsharp如何将行高添加到块内容
【发布时间】:2018-05-29 18:51:13
【问题描述】:

我在 .net 中使用 iTextSharp 使用以下代码

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);

输出显示的文本在各行中彼此非常接近。我需要在两条线之间放置一些垂直空间。 如何在上面的代码中实现这一点?

【问题讨论】:

    标签: c# .net itext pdf-generation


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-07
      • 2012-07-27
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 2020-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多