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

And*_*ili 2 .net c# asp.net itext itextsharp

我是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);
Run Code Online (Sandbox Code Playgroud)

你可以看到一个新的单元格被添加到表格中,创建它将传递给它的字符串传递给它,并在传递一些格式设置之后.

例如:

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

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

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

我正在疯狂地了解在应用此设置时究竟发生了什么,特别是在评估此部分时:Border = PdfPCell.BOTTOM_BORDER

1)Border是一个进入iTextSharp.text.Rectangle类的int值,取值为PdfPCell.BOTTOM_BORDER返回值

2)PdfCell是另一个进入iTextSharp.text.pdf命名空间的类,它不包含BOTTOM_BORDER属性,但是这个类以这种方式定义:

public class PdfPCell : Rectangle, IAccessibleElement
Run Code Online (Sandbox Code Playgroud)

所以PdfCell类本身就是一个RectangleBOTTOM_BORDER属性是Rectangle类,事实上我在这里

public const int BOTTOM_BORDER = 2;
Run Code Online (Sandbox Code Playgroud)

好的...所以我认为这样做:

Border = PdfPCell.BOTTOM_BORDER与此相同:Border = 2,为我的单元格设置特定类型的边框.这样对吗?

疑问是:为什么我必须传递给PdfPCell类(即一个Rectangle)来设置边框而我不直接在Rectangle上设置它?

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

TNX

TyC*_*obb 12

它很可能是以旗帜为基础的.

试一试:

Border = PdfPCell.BOTTOM_BORDER | PdfPCell.TOP_BORDER
Run Code Online (Sandbox Code Playgroud)