在iTextSharp中绘制一个无边框表

时间:2014-06-03 03:15:19

标签: c# itextsharp

好像PDfPCell类确实有一个border属性而不是PdfPTable类。

PdfPTable类是否有一些属性可以在一个语句中设置所有包含单元格的边界?

3 个答案:

答案 0 :(得分:3)

边界定义在单元格的级别,而不是在表格的级别。因此:如果要删除表格的边框,则需要删除每个单元格的边框。

默认情况下,每个单元格都有一个边框。您可以通过更改每个单元格的边框来更改此默认行为。例如:如果您创建PdfPCell个对象,则使用:

cell.setBorder(Rectangle.NO_BORDER);

如果在内部创建单元格,则需要在默认单元格的级别更改该属性。见What is the PdfPTable.DefaultCell property used for?

table.getDefaultCell().setBorder(Rectangle.NO_BORDER);

对于特殊边框,例如带圆角的边框或整个表格的单边框,或双边框,您可以使用单元格事件或表格事件,或两者的组合。在我的书" iText in Action - Second Edition"的第5章中,您将找到a PDF with double borders。请参阅PressPreviews示例,了解如何完成此操作。请注意,本书中的所有示例都移植到C#。您可以找到these examples here

官方网站还提供了边框are dotted lineshave rounded corners等示例。

答案 1 :(得分:3)

iTextSharp没有setBorder()方法。

我尝试了以下内容:

cell.HasBorder(Rectangle.NO_BORDER); // <= this did nothing
cell.BorderColor = BaseColor.WHITE; // <= this works for me, but if your document's background is not white, you might not like it
cell.BorderWidth = 0; // <= this works like gangbusters

所以看起来最安全&#34;要走的路是将BorderWidth设置为zilch AKA nada。

答案 2 :(得分:2)

以下对我有用。

cell.Border = Rectangle.NO_BORDER;