PDFBox:如何从TextPosition获取PDRectangle

时间:2012-07-17 14:10:23

标签: pdfbox

我要求用超链接替换现有PDF中的某些短语。例如,“使用Java语言的一个优点是人力的可用性”应该被处理为“使用the Java language的一个好处是人力的可用性。”

为此,我创建了一个扩展PDFTextStripper的Processor类。通过覆盖processTextPosition,我能够获得所有角色的TextPosition。但我无法知道如何从TextPosition获取PDRectangle,这将有助于我构建PDAnnotationLink。我尝试了x,y属性的组合,但我错过了位置。需要一些帮助。谢谢。

Sanjay

1 个答案:

答案 0 :(得分:1)

我这样做了:

rectangle.setLowerLeftX(position.getTextPos().getXPosition());
rectangle.setLowerLeftY(position.getTextPos().getYPosition() - 2); // 2 as cushion
rectangle.setUpperRightX(rectangle.getLowerLeftX() + position.getWidthDirAdj());
rectangle.setUpperRightY(rectangle.getLowerLeftY() + 12 /*
    ideally it should be position.getHeightDir()?
    but my sample PDF yielded a negative figure for this */);