如何使用itext sharp在pdf中仅设置表格的垂直线?
我有一张垂直和水平线的桌子。 但我不想要水平线。我只想要垂直线。我怎么设置它。 我预期的o / p是
我的表格代码
PdfPTable table = new PdfPTable(5); table.TotalWidth = 510f;//table size table.LockedWidth = true; table.HorizontalAlignment = 0; table.SpacingBefore = 10f;//both are used to mention the space from heading table.DefaultCell.HorizontalAlignment = Element.ALIGN_LEFT; table.AddCell(new Phrase(new Phrase(" SL.NO", font1))); table.DefaultCell.HorizontalAlignment = Element.ALIGN_LEFT; table.AddCell(new Phrase(new Phrase(" SUBJECTS", font1))); table.DefaultCell.HorizontalAlignment = Element.ALIGN_LEFT; table.AddCell(new Phrase(new Phrase(" MARKS", font1))); table.DefaultCell.HorizontalAlignment = Element.ALIGN_LEFT; table.AddCell(new Phrase(new Phrase(" MAX MARK", font1))); table.DefaultCell.HorizontalAlignment = Element.ALIGN_LEFT; table.AddCell(new Phrase(new Phrase(" CLASS AVG", font1))); Doc.Add(table);
例如:
有人请帮忙
您可以更改单元格的边框,使它们只显示垂直线条。 如何执行此操作取决于您如何将单元格添加到表中。
这是两种方法:
1.您明确创建PdfPCell对象:
PdfPCell cell = new PdfPCell(); cell.AddElement(new Paragraph(“my content”)); cell.Border = PdfPCell.LEFT; table.AddCell(细胞);
在这种情况下,仅显示单元格的左边框。 对于行中的最后一个单元格,您还应该添加右边框:
cell.Border = PdfPCell.LEFT | PdfPCell.RIGHT;
2.隐式创建PdfPCell对象:
在这种情况下,您不要自己创建PdfPCell
对象,而是让iTextSharp创建单元格。 这些单元格将复制在PdfPTable
级别定义的DefaultCell
的属性,因此您需要更改此:
table.DefaultCell.Border = Rectangle.LEFT | Rectangle.RIGHT; table.addCell("cell 1"); table.addCell("cell 2"); table.addCell("cell 3");
现在所有单元格都没有顶部或底部边框,只有左右边框。 你会画一些额外的线条,但没有人会注意到线条重合。
另请参见在iTextSharp中隐藏表格边框
例如:
PdfPTable table = new PdfPTable(5); table.TotalWidth = 510f;//table size table.LockedWidth = true; table.SpacingBefore = 10f;//both are used to mention the space from heading table.DefaultCell.HorizontalAlignment = Element.ALIGN_LEFT; table.DefaultCell.Border = PdfPCell.LEFT | PdfPCell.RIGHT; table.AddCell(new Phrase(" SL.NO", font1)); table.AddCell(new Phrase(" SUBJECTS", font1)); table.AddCell(new Phrase(" MARKS", font1)); table.AddCell(new Phrase(" MAX MARK", font1)); table.AddCell(new Phrase(" CLASS AVG", font1)); Doc.Add(table);
无需多次定义DefaultCell
的属性。 没有必要像这样嵌套Phrase
构造函数: new Phrase(new Phrase("content"))
。
布鲁诺的答案并没有帮助我,但我得到了一个想法,也许是因为那是在2015年,但这就是我所做的。 我宣布一张桌子
PdfPTable table2 = new PdfPTable(8);
定义宽度..
table2.WidthPercentage = 100;
最后只放置了我喜欢的边框
table2.DefaultCell.Border = Rectangle.RIGHT_BORDER; table2.DefaultCell.Border = Rectangle.LEFT_BORDER;
当然,如果你想用它来显示。
table2.AddCell(new Phrase("Total Amount", ftxt)); table2.AddCell(new Phrase("Another text", ftxt));
当然,将其添加到pdf中。
doc.Add(table2);
似乎iTextSharp有内置的列/行,如果你没有指定它。