Это может показаться старым вопросом, но я не нашел исчерпывающего ответа, потратив полчаса на поиски по всему SO.
Я использую PDFBox и хочу извлечь весь текст из файла PDF вместе с координатами каждой строки. Я использую их PrintTextLocations
пример (http://pdfbox.apache.org/apidocs/org/apache/pdfbox/examples/util/PrintTextLocations.html), но с типом pdf, который я использую (электронные билеты), программа не распознает строки, печатая каждый символ отдельно. Результатом является список строк (каждая из которых представляет объект TextPosition
), например:
String[414.93896,637.2442 fs=1.0 xscale=8.0 height=4.94 space=2.2240002 width=4.0] s
String[418.93896,637.2442 fs=1.0 xscale=8.0 height=4.94 space=2.2240002 width=4.447998] a
String[423.38696,637.2442 fs=1.0 xscale=8.0 height=4.94 space=2.2240002 width=1.776001] l
String[425.16296,637.2442 fs=1.0 xscale=8.0 height=4.94 space=2.2240002 width=4.447998] e
Пока я бы хотел, чтобы программа распознавала строку "продажа" как уникальную TextPosition
и выдавала мне ее позицию. Я также пробовал играть с методами setSpacingTolerance()
и setAverageCharacterTolerance()
PDFTextStripper
, устанавливая разные значения выше и ниже стандартных значений (которые, к вашему сведению, равны 0,5 и 0,3 соответственно), но результат совсем не изменился. Где я ошибаюсь? Заранее спасибо.