我如何知道使用itext有多少页面是文本?即文本占整个页面的50%?或25%?有没有办法可以得到文本结束的Y坐标?那么你就知道在哪里写下一段文字了。
谢谢
答案 0 :(得分:0)
这绝对不是微不足道的。 但最简单的实现(做出很多假设)有点像这样:
class TextMeasurementListener implements IEventListener {
private float space = 0.0f;
public TextMeasurementListener(PdfDocument pdfDocument, int pageNr)
{
new PdfDocumentContentParser(pdfDocument).processContent(pageNr, this);
}
@Override
public void eventOccurred(IEventData data, EventType type) {
if(type != EventType.RENDER_TEXT)
return;
TextRenderInfo textRenderInfo = (TextRenderInfo) data;
for(TextRenderInfo charInfo : textRenderInfo.getCharacterRenderInfos())
{
CharacterRenderInfo characterRenderInfo = new CharacterRenderInfo(charInfo);
space += characterRenderInfo.getBoundingBox().getWidth() * characterRenderInfo.getBoundingBox().getHeight();
}
}
public float getReservedSpaceInPoints()
{
return space;
}
@Override
public Set<EventType> getSupportedEvents() {
return null;
}
}
此方法实际上处理单个页面,并计算每个字符的每个边界框的区域。