Исключение суперскрипта при извлечении текста из pdf

Я извлек текст из pdf построчно с помощью pdfbox, чтобы обработать его с помощью моего алгоритма по предложениям.

Я узнаю предложения по точке (.), За которой следует слово, первая буква которого заглавная. Здесь проблема в том, что когда предложение заканчивается словом с надстрочным индексом, экстрактор рассматривает его как обычный символ и помещает его рядом с точкой (.)

Например: выражение «2 степень 22», когда оно появилось в качестве последнего слова в предложении, то есть с точкой, было извлечено как 2.22, что затрудняет определение конца предложения.

Пожалуйста, предложите решение, чтобы избавиться от суперсценария, или другую логику для определения конца предложения.

Спасибо.


person user1830284    schedule 28.03.2014    source источник
comment
В надстрочном индексе, скорее всего, используется более мелкий шрифт. Унаследовать класс от PdfTextStripper, который отбрасывает текст мелким шрифтом.   -  person mkl    schedule 29.03.2014
comment
@mkl: Спасибо, ваше предложение очень помогло.   -  person user1830284    schedule 02.04.2014


Ответы (1)


Я отвечаю на свои вопросы, некоторые из них могут быть направлены сюда.

Я решил это в соответствии с предложением @mkl. Наблюдая за результатом getYScale () в PDFStreamEngine.java, я пришел к выводу, что размер надстрочного индекса меньше 8.9663. поэтому я сохранил условие в PDFStreamEngine.java перед созданием TextPosition, которое будет обрабатываться PDFTextStripper.java. Код ниже:


if(textXctm.getYScale()>=8.9663) {
    processTextPosition(
        new TextPosition(
            pageRotation,
            pageWidth,
            pageHeight,
            textMatrixStart,
            endXPosition,
            endYPosition,
            totalVerticalDisplacementDisp,
            widthText,
            spaceWidthDisp,
            c,
            codePoints,
            font,
            fontSizeText,
            (int)(fontSizeText * textMatrix.getXScale())
    ));
}

Сообщите мне, есть ли в моем подходе недостатки в удалении только надстрочных знаков. Спасибо.

person user1830284    schedule 02.04.2014