我有一张有垂直和水平线的 table 。但是我不需要水平线,我只需要垂直线,如何设置它。我的预期输出是
我的表格代码
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单元格=新的PdfPCell();
cell.AddElement(new Paragraph(“my content”));;
cell.Border = PdfPCell.LEFT;
table.AddCell(cell);
在这种情况下,将仅显示单元格的左边框。对于行中的最后一个单元格,您还应该添加右边框:
cell.Border = PdfPCell.LEFT | PdfPCell.RIGHT;
2.隐式创建PdfPCell对象:
在这种情况下,您不必自己创建PdfPCell
对象,而应让iTextSharp创建单元格。这些单元格将复制在DefaultCell
级别定义的PdfPTable
的属性,因此您需要更改此设置:
table.DefaultCell.Border = Rectangle.LEFT | Rectangle.RIGHT;
table.addCell("cell 1");
table.addCell("cell 2");
table.addCell("cell 3");
现在,所有单元格都没有顶部或底部边框,只有左侧和右侧边框。您将绘制一些额外的线条,但是当线条重合时,没有人会注意到。
另请参阅Hiding table border in 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"))
。关于c# - 如何使用itextsharp在pdf中仅设置表格的垂直线?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32774984/