我对使用itext 7呈现的表有几个问题。我使用itext 7.0.2.2(C#edition)。
首先,当表开始靠近页面底部并且页面只有标题空间时,itext 7会在第一页上呈现标题,并在标题之后立即显示分页符。如何强制保持标题和第一行在一起?
下一个问题是itext 7拆分行而不是将整行移动到下一页。我知道itext 5有setSplitLate(bool)方法,它将itext配置为拆分行,但是如何处理itext 7?看看行发生了什么: 请注意,行可以为空并且应该具有最小高度,因此对单元格内容的setKeepTogether(true)不是解决方案。我这样添加单元格:
table.AddCell(new Cell().SetMinHeight(MIN_HEIGHT).Add("foo"));
更新 这是行拆分的重复(C#):
var writer = new PdfWriter(new FileStream("...", FileMode.Create));
var pdfDoc = new PdfDocument(writer);
using (var document = new Document(pdfDoc, PageSize.A4))
{
var table = new iText.Layout.Element.Table(UnitValue.CreatePercentArray(new[] { 1.3f, 1f, 1f, 1f, 1f, 1f, 1f }))
.SetWidthPercent(100f)
.SetFixedLayout();
foreach (var i in Enumerable.Range(1, 7 * 100)) // 100 rows
{
var cell = new Cell().SetKeepTogether(true).SetMinHeight(45).Add(i.ToString());
table.AddCell(cell);
}
document.Add(table);
}
答案 0 :(得分:0)
设置表头单元格。 tbl.addHeaderCell( new Cell().add("head txt"));
这会强制标题在我的经历的新页面中重复。
然后只需在正常的列中为单元格添加内容。