如何在 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)PdfCell是iTextSharp.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我只显示单元格的下边框,我该怎么做才能显示单元格的底部和上部边框?
嘟嘟
它很可能是基于标志的。
试一试:
Border = PdfPCell.BOTTOM_BORDER | PdfPCell.TOP_BORDER
或者您可以使用 0 到 15 之间的数字
0 无边框1 个顶部边框2 下边框...9 左右边框..等等