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

时间:2011-06-05 00:49:49

标签: c# itext border

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

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

  1. 创建一个列大小的PdfPTable
  2. 向其添加一个边框设置为BOTTOM_BORDER且包含徽标图像
  3. 的PdfPCell
  4. 将另一个带有标题文本的PdfPCell添加到PdfPTable
  5. 但是,在生成的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();
    

    这就是它的样子:

    This is how it looks like

1 个答案:

答案 0 :(得分:2)

尝试添加此内容:

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;