如何在 iTextSharp 中同时显示单元格的底部和顶部边框

本文关键字:单元格 底部 边框 顶部 显示 iTextSharp | 更新日期: 2023-09-27 17:57:25

我对iTextSharp(C#的iText移植)非常陌生,我对以下情况感到疯狂。

在我正在处理的应用程序中,我以这种方式定义了一个表:

table = new PdfPTable(2);
table.SetWidths(new int[] { 100, 500 });
//table.WidthPercentage = 95;
table.AddCell(new PdfPCell(new Phrase("Description:")) { Border = PdfPCell.BOTTOM_BORDER, Padding = 5, MinimumHeight = 50, PaddingTop = 15 });
table.AddCell(new PdfPCell(new Phrase(currentVuln.ShortSummary)) { Border = PdfPCell.BOTTOM_BORDER, Padding = 5, MinimumHeight = 50, PaddingTop = 15 });
_document.Add(table);

s,您可以看到一个新单元格被添加到表中,创建它,将必须在自身中显示的字符串传递给它,并在传递一些 grphical 设置后。

例如:

table.AddCell(new PdfPCell(new Phrase("Description:")) { Border = PdfPCell.BOTTOM_BORDER, Padding = 5, MinimumHeight = 50, PaddingTop = 15 });

它添加一个新单元格,显示字符串描述和图形设置应用到 {...} 块中。

我的第一个疑问是:这个语法到底是什么?它是C#语法还是与iTextSharp相关的东西?

然后,我疯狂地了解应用此设置时究竟会发生什么,尤其是在评估本节时:边框 = PdfPCell.BOTTOM_BORDER

1) Border 是 iTextSharp.text.Rectangle 类中的 int 值,该类采用返回值的值PdfPCell.BOTTOM_BORDER

2)PdfCelliTextSharp.text.pdf命名空间中的另一个类,它不包含BOTTOM_BORDER属性,但该类以这种方式定义:

public class PdfPCell : Rectangle, IAccessibleElement

所以 PdfCell 类本身就是一个矩形,BOTTOM_BORDER属性是矩形类,事实上我这里有

public const int BOTTOM_BORDER = 2;

还行。。。所以我认为这样做:

边框 = PdfPCell.BOTTOM_BORDER 与执行的操作相同:边框 = 2 为我的单元格设置特定类型的边框。对吗?

问题是:为什么我必须传递给 PdfPCell 类(即矩形)来设置边框,而我不直接在矩形上设置边框?

我还有以下问题:通过边框 = PdfPCell.BOTTOM_BORDER我只显示单元格的下边框,我该怎么做才能显示单元格的底部和上部边框?

如何在 iTextSharp 中同时显示单元格的底部和顶部边框

它很可能是基于标志的。

一试:

Border = PdfPCell.BOTTOM_BORDER | PdfPCell.TOP_BORDER

或者您可以使用 0 到 15 之间的数字

0 无边框1 个顶部边框2 下边框...9 左右边框..等等