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

本文关键字:表格 单元格 边框 覆盖 iTextSharp 图像 | 更新日期: 2023-09-27 17:58:28

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

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

  1. 创建具有一列大小的PdfPTable
  2. 添加一个边界设置为BOTTOM_border的PdfPCell,其中包含徽标图像
  3. 将另一个具有标题文本的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();

这就是它的样子:

这就是的样子

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

尝试添加以下内容:

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;