LayoutResult在Itext7中多一页

时间:2019-05-29 17:35:10

标签: itext itext7

我问这个:Remove the first and last lines properties in the paper Itext7

如果我这样做:

 PdfWriter pdfWriter = new PdfWriter(dest);


    PdfDocument pdfDoc = new PdfDocument(pdfWriter);
    Div div = new Div();
    Document doc = new Document(pdfDoc, PageSize.A5);
    doc.setMargins(0,0,0,36);

    for (int i = 0; i <50 ; i++) {
        ListItem listItem = new ListItem();
        String s= "hello "+i;
        Paragraph p = new Paragraph();
        for (int j = 0; j <s.length() ; j++) {


            p.add("HELLO " +I);


        }


  LayoutResult result = div.createRendererSubTree().setParent(doc.getRenderer()).layout(new LayoutContext(new LayoutArea(0,PageSize.A5)));


List<IRenderer> childRendererParagraph = result.getSplitRenderer().getChildRenderers();

childRendererParagraph仅包含首页中的段落。而且我不知道pdf中有多少页

1 个答案:

答案 0 :(得分:1)

正如我在上一个问题的答案中所述,

  

拆分渲染器代表iText可以放置在区域上的部分内容,即溢出的内容。

因此,如果要布局其余内容,则可以在layout上执行相同的操作(overflowRenderer)。

代码如下:

    LayoutResult firstPageResult = div.createRendererSubTree().setParent(doc.getRenderer()).layout(new LayoutContext(new LayoutArea(0, PageSize.A5)));
    LayoutResult secondPageResult  = firstPageResult.getOverflowRenderer().layout(new LayoutContext(new LayoutArea(1, PageSize.A5)));

一旦内容完全放好,overflowRenderer将为空。