在添加到文档之前,我需要知道一个段落的宽度(以磅为单位)。我在这里搜索,发现阿列克谢有关段落高度的答案。所以我用宽度做的,但是不行。无论段落多长时间,始终返回矩形的宽度。我尝试了这段代码:
private float getRealParagraphWidth(Document doc, Paragraph paragraph) {
// Create renderer tree
IRenderer paragraphRenderer = paragraph.createRendererSubTree();
// Do not forget setParent(). Set the dimensions of the viewport as needed
LayoutResult result = paragraphRenderer.setParent(doc.getRenderer()).
layout(new LayoutContext(new LayoutArea(1, new Rectangle(1000, 100))));
// LayoutResult#getOccupiedArea() contains the information you need
return result.getOccupiedArea().getBBox().getWidth();
}
所以,我的问题是,如果此代码适用于高度而不适用于宽度,那么这又有什么问题呢?
我的一个朋友解决了它。代码的最后一行应为以下代码:
private float getRealParagraphWidth(Document doc, Paragraph paragraph) {
// Create renderer tree
IRenderer paragraphRenderer = paragraph.createRendererSubTree();
// Do not forget setParent(). Set the dimensions of the viewport as needed
LayoutResult result = paragraphRenderer.setParent(doc.getRenderer()).
layout(new LayoutContext(new LayoutArea(1, new Rectangle(1000, 100))));
// LayoutResult#getOccupiedArea() contains the information you need
//return result.getOccupiedArea().getBBox().getWidth();
return ((ParagraphRenderer) paragraphRenderer).getMinMaxWidth().getMaxWidth();
}
它得出正确的值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句