C# 图像覆盖iTextSharp中的表格单元格边框

C# 图像覆盖iTextSharp中的表格单元格边框,c#,itext,border,C#,Itext,Border,我正在尝试使用iTextSharp库(版本4.1.2.0)创建PDF。在文档的顶部,我想添加一个徽标、水平线和一些文字(标题) 我正试图通过以下方式实现这一目标: 创建具有一列大小的PdfPTable 添加一个PdfPCell,其边框设置为包含徽标图像的底部_边框 将另一个具有标题文本的PdfPCell添加到PdfPTable 但是,在生成的PDF中,图像覆盖了底部边框(否则显示为精细)。如何阻止它覆盖它?我能做到这一点的唯一方法是将PdfPCell构造函数的FIT参数设置为true,但这完全破

我正在尝试使用iTextSharp库(版本4.1.2.0)创建PDF。在文档的顶部,我想添加一个徽标、水平线和一些文字(标题)

我正试图通过以下方式实现这一目标:

  • 创建具有一列大小的PdfPTable
  • 添加一个PdfPCell,其边框设置为包含徽标图像的底部_边框
  • 将另一个具有标题文本的PdfPCell添加到PdfPTable
  • 但是,在生成的PDF中,图像覆盖了底部边框(否则显示为精细)。如何阻止它覆盖它?我能做到这一点的唯一方法是将PdfPCell构造函数的FIT参数设置为true,但这完全破坏了布局(图像非常巨大)

    守则:

            document.Open();
    
            Image img = Image.GetInstance("Logo.PNG");
            PdfPCell cell = new PdfPCell(img, false);
            PdfPTable table = new PdfPTable(1);
            cell.Border = PdfPCell.BOTTOM_BORDER;
            table.DefaultCell.Border = PdfPCell.NO_BORDER;
            table.WidthPercentage = 100;
            table.AddCell(cell);
    
            PdfPCell cell2 = new PdfPCell(new Phrase("Title"));
            cell2.Border = PdfPCell.TOP_BORDER;
            table.AddCell(cell2);
            document.Add(table);
    
            document.Close();
    
    这就是它的样子:

    尝试添加以下内容:

    cell.PaddingBottom = 5;
    
    因此,更新后的代码将是:

    PdfPTable table = new PdfPTable(1);
    table.DefaultCell.Border = PdfPCell.NO_BORDER;
    table.WidthPercentage = 100;
    
    Image img = Image.GetInstance("Logo.PNG");
    PdfPCell cell = new PdfPCell(img, false);
    cell.Border = PdfPCell.BOTTOM_BORDER;
    cell.PaddingBottom = 5;
    table.AddCell(cell);
    
    PdfPCell cell2 = new PdfPCell(new Phrase("Title"));
    table.AddCell(cell2);
    
    document.Add(table);
    document.Close();
    
    还可以尝试其他方法:

    cell.UseBorderPadding = true;
    

    是的。图像的底部与底部边框完全对齐,覆盖了它。PS:以后,请链接到您的PDF,而不是屏幕截图。