itext 7 - 如何配置表拆分

时间:2017-04-28 09:34:12

标签: itext itext7

我对使用itext 7呈现的表有几个问题。我使用itext 7.0.2.2(C#edition)。

首先,当表开始靠近页面底部并且页面只有标题空间时,itext 7会在第一页上呈现标题,并在标题之后立即显示分页符。如何强制保持标题和第一行在一起? table splits right after header

下一个问题是itext 7拆分行而不是将整行移动到下一页。我知道itext 5有setSplitLate(bool)方法,它将itext配置为拆分行,但是如何处理itext 7?看看行发生了什么: table row breaks 请注意,行可以为空并且应该具有最小高度,因此对单元格内容的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);
}

结果: enter image description here

1 个答案:

答案 0 :(得分:0)

设置表头单元格。 tbl.addHeaderCell( new Cell().add("head txt")); 这会强制标题在我的经历的新页面中重复。 然后只需在正常的列中为单元格添加内容。