Java 删除图纸Itext7中的第一行和最后一行属性

Java 删除图纸Itext7中的第一行和最后一行属性,java,itext,itext7,Java,Itext,Itext7,如果t.setRise(+-)超出了文件字段,我需要删除Text(setRise)中的属性。 PdfDocument pdfDoc=新的PdfDocument(pdfWriter); 文档文档=新文档(pdfDoc,PageSize.A5); 文件设定利润率(0,0,0,36); 对于(int i=0;i),您的问题如下: DuffsEs/Obj>方法在绘制完成之后调用。在这个阶段,ItEXT通常不考虑任何元素的属性:它只是将元素放置在其占用的区域中,之前在LayOut.()/阶段> 之前已经

如果t.setRise(+-)超出了文件字段,我需要删除Text(setRise)中的属性。

PdfDocument pdfDoc=新的PdfDocument(pdfWriter);
文档文档=新文档(pdfDoc,PageSize.A5);
文件设定利润率(0,0,0,36);

对于(int i=0;i),您的问题如下:<代码> DuffsEs/Obj>方法在绘制完成之后调用。在这个阶段,ItEXT通常不考虑任何元素的属性:它只是将元素放置在其占用的区域中,之前在LayOut.()/<代码>阶段>

之前已经计算过元素。 您可以通过布局模拟来克服它

让我们将所有段落添加到div中,而不是直接添加到文档中。然后模拟将此div添加到文档中:

LayoutResult result = div.createRendererSubTree().setParent(doc.getRenderer()).layout(new LayoutContext(new LayoutArea(0, PageSize.A5)));
在上面的代码片段中,我尝试在一个5号大小的文档上布局我们的div

现在你可以考虑布局的结果,并改变一些元素,这些元素将被处理为真正的“代码>文档添加”/代码>。例如,获得第三十个段落的段落,可以使用:

((DivRenderer)result.getSplitRenderer()).getChildRenderers().get(30);

更多提示:
拆分渲染器代表ITEXT可以在该区域上放置的内容,溢出内容溢出。

< p>您的问题如下:<代码> Drabss<代码>方法在渲染完成后调用。在这个阶段,ItEXT通常不考虑任何元素的属性:它只是将元素放置在它的占用中。在
layout()
stage上计算的面积

您可以通过布局模拟来克服它

让我们将所有段落添加到div中,而不是直接添加到文档中。然后模拟将此div添加到文档中:

LayoutResult result = div.createRendererSubTree().setParent(doc.getRenderer()).layout(new LayoutContext(new LayoutArea(0, PageSize.A5)));
在上面的代码片段中,我尝试在一个5号大小的文档上布局我们的div

现在你可以考虑布局的结果,并改变一些元素,这些元素将被处理为真正的“代码>文档添加”/代码>。例如,获得第三十个段落的段落,可以使用:

((DivRenderer)result.getSplitRenderer()).getChildRenderers().get(30);

更多提示:
拆分呈现器表示iText可以放置在区域上的内容部分,溢出-溢出的内容。

但我无法获取GetOccupiedArabox();也无法计算最后一行和第一行的位置。如果在布局矩形中执行此操作,rect=this.GetOccupiedArabox();我得到NullPointerException这是我在调试时看到的:您能指定调用
GetOccupiedArabox
方法的确切位置吗?区域上的第一行由splitRenderer的第一个子级表示,最后一行由splitRenderer的最后一个子级表示,但我无法得到GetOccupiedArabox();我无法计算最后一行和第一行的位置。如果在布局矩形中执行此操作,rect=this.getOccuppiedArabox();我得到NullPointerException这就是我在调试时看到的:您能指定调用
GetOccuppiedArabox
方法的确切位置吗?区域上的第一行由splitRenderer的第一个子级表示,最后一行由splitRenderer的最后一个子级表示