LayoutResult 在 Itext7 中多了一页
LayoutResult more one page in 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 仅包含第一个段落page.And 我不知道 pdf 中有多少页
正如我在回答您之前的问题时提到的,
split renderer represent the part of the content which iText can place on the area, overflow - the content which overflows.
因此,如果您想对其余内容进行布局,您可以在 overflowRenderer
.
上执行相同的操作 (layout
)
代码如下:
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 将为空。
我问这个:
如果我这样做:
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 仅包含第一个段落page.And 我不知道 pdf 中有多少页
正如我在回答您之前的问题时提到的,
split renderer represent the part of the content which iText can place on the area, overflow - the content which overflows.
因此,如果您想对其余内容进行布局,您可以在 overflowRenderer
.
layout
)
代码如下:
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 将为空。