TextPosition.getXDirAdj()
и TextPosition.getYDirAdj()
не возвращают координаты в системе координат пользовательского пространства по умолчанию, но вместо этого в системе координат, которую внутренняя разметка текста PDFBox использует для более удобного определения строк текста.
Для извлечения координат в система координат пользовательского пространства по умолчанию, используйте свойства TranslateX
и TranslateY
текстовой матрицы и добавьте координаты левого нижнего угла поля обрезки текущей страницы.
Например, для TextPosition textposition
и a PDRectangle cropBox
:
float x = textposition.getTextMatrix().getTranslateX() + cropBox.getLowerLeftX();
float y = textposition.getTextMatrix().getTranslateY() + cropBox.getLowerLeftY();
Часто нижний левый угол рамки обрезки равен (0, 0), поэтому коррекция с использованием рамки обрезки часто не требуется. Однако для примера, для которого необходимо это исправление, см. этот ответ .